Sergiy Barlabanov

Größe: px
Ab Seite anzeigen:

Download "Sergiy Barlabanov 30.09.2010"

Transkript

1 Sergiy Barlabanov

2 JBoss UML JEE Java Spring EJB OOP Hibernate 1 Einführung und Theorie 2 REST Ressource implementieren 3 Methods 4 Status und Fehlerhandling 5 Conneg (connent negotiation) 6 Caching 7 Conditional Requests 8 HATEOS 9 Transferring Metadata 10 RESTful Clients 11 Architekturüberlegungen

3 UML JBoss 1. Einführung und Theorie JEE Java Spring EJB OOP Hibernate

4 Für was steht REST REST - Representational State Transfer Keine Technologie Kein Protokoll Ein Architekturstil (wie z.b. SOA, EDA) hat theoretisch nichts mit HTTP zu tun praktisch - alle REST-basierte (RESTful) Systeme sind auf HTTP aufgebaut

5 Die Rolle des Protokolls Eine RESTful Architektur ist auf einem Application Layer Protokoll (z.b. HTTP) aufgebaut maximize the use of the pre-existing, well-defined interface and other built-in capabilities provided by the protocol (Caching, Routing, Security, Versionierung, usw.) minimize the addition of new application-specific features on top of it

6 Warum REST Man muss kein Rad neu erfinden - HTTP 1.1 definiert schon Adressieren, Fehlercodes, Versionieren, Datenkomprimierung, Conneg ( self-description and autodiscovery of media types and capabilities ), usw. Es gibt eine Menge von Tools auf dem Markt, die mit HTTP arbeiten: HTTP Servers, Routers, Browsers, Caches, Libraries Einfach zu entwickeln, testen und debuggen (browser, curl, wget, telnet, soapui, usw. usw.)

7 Was ist eine Ressource "Any information that can be named can be a resource: a document or image, a temporal service, a collection of other resources, a non-virtual object (e.g. a person), and so on..the intended conceptual target of a hypertext reference" (Roy Thomas Fielding)

8 Eigenschaften einer Ressource kann eindeutig mit einer URI identifiziert werden hat State - abhängig von der Zeit, z.b ein Produkt hat Preis und Lagerbestand kann anhand von im HTTP Standard definierten Methoden manipuliert werden (GET, POST, PUT, usw.) - Uniform Interface ist mit anderen Ressourcen verlinkt (HATEOS) kann mehrere Repräsentationen haben Ein Hardware-Bild als JPEG oder PNG Ein Produkt als JSON, XML, HTML, usw.

9 Ressource Repräsentation * " captures the current state of the resource A representation is a sequence of bytes, plus representation metadata to describe those bytes." (Roy Thomas Fielding) Repräsentation ist genau das, was zwischen einem Klient und einem Server ausgetauscht wird (XML, JSON, JPEG Datei, usw.)

10 Handyshop Produkte,Hardware,Tarife holen Produkte,Hardware,Tarife hinzufügen und löschen Produkte suchen

11 Service-Oriented public interface HandyShopService { List<ProductDTO> getproducts(date since, Date until, Integer limit); ProductDTO getproduct(string productid); HardwareDTO gethardware(string hardwareid); TariffDTO gettariff(string tariffid); } void addproduct(productdto newproduct); void removeproduct(string productid); ProductDTO updateproduct(productdto product); //...

12 RESTful Handyshop

13 Produkte holen > GET /handyshop/products?limit=1 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Accept-Charset: UTF-8 > < HTTP/ OK < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < ETag: < Content-Type: application/json; charset=utf-8 < Transfer-Encoding: chunked < Date: Sun, 19 Sep :34:13 GMT [ { "id":"tmob-max-flat-m-1", "description":"max Flat M mit Nokia 6210", "tariff":"http://localhost:8080/handyshop/tariffs/tmob-maxflatm", "hardware":"http://localhost:8080/handyshop/hardware/nokia6210", "hardwareprice":1.00, "monthrate":30.00 },... ]

14 Produkt anlegen > POST /handyshop/products HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Content-Type: application/json; charset=utf-8 > Content-Length: 144 > { "description":"max Flat M mit Nokia 6210", "tariffid":"tmob-maxflatm", "hardwareid":"palmpre", "hardwareprice":100.00, "monthrate":50.00 } > < HTTP/ Created < Server: Apache-Coyote/1.1 < Location: < Content-Length: 0 < Date: Sun, 19 Sep :20:54 GMT

15 Produkt nicht gefunden > GET /handyshop/products/11 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > < HTTP/ Not Found < Server: Apache-Coyote/1.1 < Content-Type: text/html;charset=utf-8 < Content-Length: 0 < Date: Sun, 19 Sep :24:37 GMT

16 Resource Oriented Design (ROD) Ein RESTful Service wird als eine Sammlung von Ressourcen entworfen. Dabei sollen folgende Prinzipien berücksichtigt werden: Addressability Uniform and constrained interface (man weiss genau, welche Operationen werden unterstützt) Service soll representation-oriented sein Stateless Communication

17 JBoss UML JEE Java 2. REST Ressource implementieren Spring EJB OOP Hibernate

18 Frameworks für die Server-Seite Servlets JAX-RS 1.0, 1.1 (JBoss RestEasy, Sun Jersey, Apache CXF, Apache Wink) Spring 3.0 Restlet

19 JAX-RS public class ProductListResource private "application/xml"}) public Response Request UriInfo Date Date Integer limit) public Response UriInfo uriinfo, ProductRepresentation prdrpr) {...}

20 ProductListResource#getProducts > GET /handyshop/products?limit=1 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Accept-Charset: UTF-8 > < HTTP/ OK < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < ETag: < Content-Type: application/json; charset=utf-8 < Transfer-Encoding: chunked < Date: Sun, 19 Sep :34:13 GMT [ { "id":"tmob-max-flat-m-1", "description":"max Flat M mit Nokia 6210", "tariff":"http://localhost:8080/handyshop/tariffs/tmob-maxflatm", "hardware":"http://localhost:8080/handyshop/hardware/nokia6210", "hardwareprice":1.00, "monthrate":30.00 },... ]

21 ProductListResource#createProduct > POST /handyshop/products HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Content-Type: application/json; charset=utf-8 > Content-Length: 144 > { "description":"max Flat M mit Nokia 6210", "tariffid":"tmob-maxflatm", "hardwareid":"palmpre", "hardwareprice":100.00, "monthrate":50.00 } > < HTTP/ Created < Server: Apache-Coyote/1.1 < Location: < Content-Length: 0 < Date: Sun, 19 Sep :20:54 GMT

22 public class "application/xml"}) public HardwareRepresentation String "application/xml"}) public Response String id, HardwareRepresentation "application/xml"}) public HardwareRepresentation String id, HardwareRepresentation hwrepr) {...} public Response String id) {...}

23 POJO public class HardwareRepresentation { private String id; private String name; private String manufacturer; private BigDecimal = "picture") private URI image; //... // getters, setters, etc.

24 UML JBoss 3. Methods JEE Java Spring EJB OOP Hibernate

25 HTTP Methods GET - fürs Auslesen, idempotent, cacheable PUT - fürs Anlegen/Aktualisieren, idempotent DELETE - fürs Löschen, idempotent POST - fürs Anlegen/Aktualisieren, nicht idempotent OPTIONS - sagt welche Methods unterstützt werden HEAD - wie GET, aber liefert nur Headers zurück TRACE, CONNECT

26 POST POST ist nicht idempotent, d.h. ein Aufruf darf nicht wiederholt werden POST statt PUT, wenn das Erzeugen oder Aktualisieren zu unterschiedlichen Ergebnissen führen kann Beispiel: beim Anlegen eines neuen Produktes wird productid vom Server generiert POST statt GET, wenn Request-URI zu lang wird (4-8K ist ganz oft die Begrenzung). Beispiel: Viren-Check einer Datei

27 Vorsichtig bei non-crud Operationen Tendenz ist prozedural zu implementieren. Das ist falsch. > POST /handyshop/validateorder?orderid=123 HTTP/1.1 Ressource-orientiert denken. Das ist besser. > GET /handyshop/orders/123/validationstatus HTTP/1.1

28 Order is valid > GET /handyshop/orders/123/validationstatus HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > < HTTP/ OK < Server: Apache-Coyote/1.1 < Content-Type: application/json < Transfer-Encoding: chunked < Date: Tue, 21 Sep :15:21 GMT < {"status":"valid"}

29 Order is invalid > GET /handyshop/orders/456/validationstatus HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > < HTTP/ OK < Server: Apache-Coyote/1.1 < Content-Type: application/json < Transfer-Encoding: chunked < Date: Wed, 22 Sep :23:22 GMT < { "status":"invalid", "errors":[ "delivery address is not specified", "receipt address is not specified", "credit card is expired"] }

30 OrderValidationStatusResource public class OrderValidationStatusResource private OrderDao public Response String orderid) { Order order = orderdao.findbyid(orderid); if (order == null) { return Response.status(Response.Status.NOT_FOUND).build(); } if (order.isvalid()) { return Response.ok(ValidationStatusRepresentation.ok()).build(); } List<String> errors = order.getvalidationerrors(); return Response.ok( ValidationStatusRepresentation.error(errors)).build(); }

31 UML JBoss 4. Status und Fehlerhandling JEE Java Spring EJB OOP Hibernate

32 Status- und Fehler-Codes Reuse HTTP Status Codes 1xx - informational 2xx - successful (200 OK, 201 Created) 3xx - redirection (301 Moved, 304 Not modified) 4xx - client errors (400 Bad request, 401 Unauthorized) 5xx - server errors (500 Internal error, 501 Not implemented) If not enough, use custom HTTP header Dazu noch eine Fehlererklärung im Body mitsenden HTTP Statuscodes auch im Erfolgsfall nutzen HTTP Spec definiert ganz genau welche Statuscodes mit welchen Methoden kombinierbar sind

33 Statuscodes public Response UriInfo uriinfo, ProductRepresentation representation) { if (representation.gethardwareid() == null) { return Response.status(Response.Status.BAD_REQUEST).header("X-Enhanced-Status", "EMPTY_FIELD").entity("empty hardwareid").type(mediatype.text_plain_type).build(); } Product newproduct = productresource.maprepresentation(representation); newproduct = catalog.addproduct(newproduct); return Response.created( productresource.geturi( newproduct.getid(), uriinfo.getbaseuri())).build(); }

34 Erfolgsfall > POST /handyshop/products HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Content-Type: application/json; charset=utf-8 > Content-Length: 144 > {...} < HTTP/ Created < Server: Apache-Coyote/1.1 < Location: < Content-Length: 0 < Date: Wed, 22 Sep :21:46 GMT

35 Fehlerfall > POST /handyshop/products HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Content-Type: application/json; charset=utf-8 > Content-Length: 119 > {...} < HTTP/ Bad Request < Server: Apache-Coyote/1.1 < X-Enhanced-Status: EMPTY_FIELD < Content-Type: text/plain < Content-Length: 16 < Date: Wed, 22 Sep :26:33 GMT < Connection: close < empty hardwareid

36 Exceptions "application/xml"}) public HardwareRepresentation String id) { Hardware hardware = catalog.findhardware(id); if (hardware == null) { throw new NoLogWebApplicationException( Response.Status.NOT_FOUND); } return createrepresentation(hardware); }

37 Custom Exceptions in JAX-RS public class HardwareNotFoundException extends NoLogWebApplicationException { } public HardwareNotFoundException(String hardwareid) { super(response.status(response.status.not_found).entity("hardware with id " + hardwareid + " does not exist").type(mediatype.text_plain_type).build()); }

38 UML JBoss 5. Conneg (content negotiation) JEE Java Spring EJB OOP Hibernate

39 Eigenschaften einer Repräsentation Format - JSON, XML, HTML, x-www-formurlencoded, plain text, JPEG, PNG, mp3, usw. Sprache/Locale - englisch, deutsch, usw. Charset Komprimierung [Version]

40 Content-* Headers Content-Type definiert das Format (Media Type) - application/json, application/xml, usw. auch das Charset - application/xml;charset=utf-8 Content-Language - Sprache/Locale - en, de, usw. Content-Encoding definiert Komprimierung - gzip, compress, deflate, identity.

41 Accept-* Headers Accept - welches Format wird erwartet (JSON, XML, usw.) Accept-Charset Accept-Encoding Accept-Language

42 Conneg Beispiel > GET /handyshop/products/1 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > Accept-Charset: UTF-8 > Accept-Language: de > Accept-Encoding: gzip, deflate > < HTTP/ OK < Server: Apache-Coyote/1.1 < Content-Type: application/json; charset=utf-8 < Content-Language: de < Date: Fri, 24 Sep :42:34 GMT < { "id":"1", "description":"max Flat M mit Nokia 6210", "tariff":"http://localhost:8080/handyshop/tariffs/tmob-maxflatm", "hardware":"http://localhost:8080/handyshop/hardware/nokia6210", "hardwareprice":1.00, "monthrate":30.00 }

43 Conneg "application/xml"}) public Response String UriInfo public Response String UriInfo public Response updateproduct( ProductRepresentation prdrpr) {...}

44 Conneg "application/xml"}) public Response String UriInfo uriinfo) { Product product = catalog.findproduct(id); if (product == null) { return Response.status(Response.Status.NOT_FOUND).type(MediaType.TEXT_PLAIN_TYPE).entity("Product " + id + " does not exist").build(); } ProductRepresentation repr = this.createrepresentation( product, uriinfo.getbaseuri()); return Response.ok(repr).build(); }

45 ProductRepresentation public class ProductRepresentation { private String id; private String description; private URI tariff; private String tariffid; private URI hardware; private String hardwareid; private BigDecimal hardwareprice; private BigDecimal monthrate;

46 Accept: text/html

47 JSON or not JSON JSON ist einfach - für interne Kommunikation und JavaScript Clients XML kann durch XSD fest definiert und später validiert werden. Gut für Kommunikation mit externen Systemen. x-www-form-urlencoded ist sehr einfach. Gut für POST Requests mit flachen Datenstrukturen. > POST /handyshop/products HTTP/1.1 >... description=max+flat+m+mit+nokia+6210 &tariffid=tmob-maxflatm&hardwareid=palmpre &hardwareprice=100&monthrate=50 >

48 UML JBoss 6. Caching JEE Java Spring EJB OOP Hibernate

49 Caching in HTTP Nur GET Abfragen Server definiert was ist cacheable Server oder Klient bestimmen, was gecachet werden soll, wann revalidiert werden soll Wichtige HTTP Header ist Cache-Control darf gecachet werden oder nicht (no-cache) wie lang ist gültig (max-age) Cache-Typ (public, private, no-store, no-transform) Wann soll revalidiert werden (must-revalidate)

50 Wo wird gecachet Auf der Klientseite Browser commons-httpclient (ab 4.1), xlightweb, JBoss RestEasy Client Framework Forward-Proxy (Squid, Apache Traffic Server) Auf der Serverseite Reverse-Proxy/HTTP Accelerator (Apache mod_cache, Varnish, nginx ncache, Squid, Apache Traffic Server)

51 Forward-Proxy vs. Reverse-Proxy

52 Caching "application/xml"}) public Response String UriInfo uriinfo) { Product product = catalog.findproduct(id); if (product == null) { return Response.status(Response.Status.NOT_FOUND).build(); } ProductRepresentation repr = this.createrepresentation( product, uriinfo.getbaseuri()); CacheControl cc = new CacheControl(); cc.setmaxage(600); //cc.setnocache(false); //cc.setprivate(false); return Response.ok(repr).cacheControl(cc).build(); }

53 Beispiel Response > GET /handyshop/products/1 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > < HTTP/ OK < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < Content-Type: application/json < Transfer-Encoding: chunked < Date: Mon, 27 Sep :38:17 GMT {...}

54 Advanced Caching Topics PUT, POST, DELETE führen zum Invalidieren GET mit Cache-Control: max-age=0 führt zum Invalidieren Gecacht werden Responses mit Statuscodes 200, 203, 206, 300, 301 oder 410 Alle anderen werden nicht gecachet, z.b. 500 :)

55 UML JBoss 7. Conditional Requests JEE Java Spring EJB OOP Hibernate

56 Für was sind sie gut Cache Revalidation Concurrency (optimistic locking)

57 Cache Revalidation > GET /handyshop/products/1 HTTP/1.1 > < HTTP/ OK < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < ETag: <... irgendwann nach 600 Sekunden > GET /handyshop/products/1 HTTP/1.1 > If-None-Match: > < HTTP/ Not Modified < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < Date: Mon, 27 Sep :08:21 GMT

58 Java Code 1 CacheControl cc = new CacheControl(); 2 cc.setmaxage(600); 3 EntityTag etag = new EntityTag( 4 String.valueOf(product.getModifiedAt().getTime())); 5 Response.ResponseBuilder builder = 6 request.evaluatepreconditions(etag); 7 if (builder!= null) { 8 return builder.cachecontrol(cc).build(); 9 } 10 ProductRepresentation repr = this.createrepresentation( 11 product, uriinfo.getbaseuri()); 12 return Response.ok(repr).tag(etag).cacheControl(cc).build(); 13

59 Concurrency > GET /handyshop/products/1 HTTP/1.1 > < HTTP/ OK < Server: Apache-Coyote/1.1 < Cache-Control: public, no-transform, max-age=600 < ETag: <... nachdem die Ressource geändert wurde > PUT /handyshop/products/1 HTTP/1.1 > If-Match: > Content-Type: application/json {...} < HTTP/ Precondition Failed < Server: Apache-Coyote/1.1 < Date: Mon, 27 Sep :08:21 GMT

60 public Response String Request request, ProductRepresentation prdrpr) { Product product = catalog.findproduct(id); if (product == null) { return Response.status( Response.Status.NOT_FOUND).build(); } EntityTag etag = new EntityTag( String.valueOf(product.getModifiedAt().getTime())); Response.ResponseBuilder builder = request.evaluatepreconditions(etag); if (builder!= null) { return builder.build(); } this.updateproductfromrepresentation(prdrpr); return Response.noContent().build(); }

61 UML JBoss 8. HATEOS JEE Java Spring EJB OOP Hibernate

62 Was ist das? Hypermedia As The Engine Of Application State Das wichtigste REST Prinzip (kein HATEOS - kein REST) RESTful API is driven by hypertext Jede Response beinhaltet Links zu weiteren Aktionen (Links zu weiteren Ressourcen) Diese Links sind abhängig von dem aktuellen Ressource/ Applikation Zustand Ein RESTful Klient kennt nur eine feste URL. Alle weiteren Aktionen werden im Form von Links in Responses geliefert

63 New Order > GET /handyshop/orders/123 HTTP/1.1 > < HTTP/ OK < ETag: { "id":"123", "validationstatus":"http://localhost:8080/handyshop/orders/123/validationstatus", "items":"http://localhost:8080/handyshop/orders/123/items", "submit":"http://localhost:8080/handyshop/orderqueue/123", "deliveryaddress":"http://localhost:8080/handyshop/orders/123/deliveryaddress", "receiptaddress":"http://localhost:8080/handyshop/orders/123/receiptaddress", "sum":200.99, "mwst":38.19, "state":"created" }

64 Submitted Order > GET /handyshop/orders/123 HTTP/1.1 > < HTTP/ OK < ETag: { "id":"456", "items":"http://localhost:8080/handyshop/orders/456/items", "deliveryaddress":"http://localhost:8080/handyshop/orders/456/deliveryaddress", "receiptaddress":"http://localhost:8080/handyshop/orders/456/receiptaddress", "sum":199.00, "mwst":37.81, "processingstatus":"http://localhost:8080/handyshop/orders/456/processingstatus," "state":"submitted" }

65 OrderResource#getOrder public Response UriInfo Request String orderid) { Order order = orderdao.findbyid(orderid); if (order == null) { throw new NoLogWebApplicationException(404); } EntityTag etag = new EntityTag( String.valueOf(order.getModifiedAt().getTime())); Response.ResponseBuilder builder = request.evaluatepreconditions(etag); if (builder!= null) { return builder.tag(etag).build(); } return Response.ok(createRepresentation(order, uriinfo)).tag(etag).build(); }

66 OrderResource#createRepresentation private OrderRepresentation createrepresentation( Order order, UriInfo uriinfo) { OrderRepresentation repr = new OrderRepresentation();... repr.setdeliveryaddress(uriinfo.getabsolutepathbuilder().path("deliveryaddress").build());... if (!order.issubmitted()) { repr.setvalidationstatus(uriinfo.getabsolutepathbuilder().path("validationstatus").build()); repr.setsubmit(uriinfo.getbaseuribuilder().path("orderqueue").path(order.getid()).build()); } else { repr.setprocessingstatus(uriinfo.getabsolutepathbuilder().path("processingstatus").build()); } return repr; }

67 Wichtig! REST APIs must be hypertext-driven, Roy T. Fielding Vorsichtig beim Umschreiben von Requests (z.b. durch Apache Rewrite-Rules). Lieber nichts umschreiben. Wenn aber doch, dann sollen relative URIs in Links verwendet werden.

68 UML JBoss 9. Transferring Metadata JEE Java Spring EJB OOP Hibernate

69 Custom HTTP Headers Request ID - X-RequestId Client ID - X-ClientId Authorisierungstoken - X-Authtoken > GET /handyshop/products/1 HTTP/1.1 > User-Agent: curl/ > Host: localhost:8080 > Accept: application/json > X-RequestId: > X-ClientId: POS-1

70 Header Tunneling Manche Proxies und Firewalls filtern unbekannte Headers raus Headers als Queryparameters übergeben Mit einem Filter zurück umwandeln > GET /handyshop/products/1?hdr-x-request-id= HTTP/1.1

71 UML JBoss 10. RESTful Clients JEE Java Spring EJB OOP Hibernate

72 Client Bibliotheken Apache commons-httpclient - ein alter guter Freund xlightweb - einfacher als commons-httpclient, hat ein paar zusätzlichen Features (z.b. Caching) JBoss RestEasy Client Framework Client Proxies Restlets bringt eigene Client Framework Apache Wink...

73 Es gibt zwei Typen von Klienten RPC JBoss RestEasy Client Proxy Gut für kleine Schnittstellen RESTful Apache commons-httpclient, xlightweb, JBoss RestEasy Client Framework flexibler, impliziert OO

74 RPC Klient mit public interface List<ProductRepresentation> void createproduct(productrepresentation @Produces("application/json") ProductRepresentation String productid);

75 Aufruf eines RPC Klienten HandyshopClient client = ProxyFactory.create( HandyshopClient.class, "http://localhost:8080/rest-service"); ProductRepresentation prdrepr = client.getproduct("1");

76 Pros und Cons von RPC Klienten Das Umgehen mit HATEOS ist problematisch Das Auswerten von Statuscodes ist problematisch Das Umgehen mit MediaTypes ist problematisch Zwei unterschiedliche Konzepte werden zusammengebracht: REST auf Server-Seite und RPC auf Klientseite. Schlecht. Passt schlecht in OO Code

77 RESTful Klient mit xlightweb UriBuilder uribuilder = UriBuilder.fromUri("http://localhost:8080/rest-service").path("Products").path("{productId}"); GetRequest request = new GetRequest( uribuilder.build("1").tostring()); request.setcontenttype(mediatype.application_json); IHttpResponse response = httpclient.call(request); if (response.getstatus() == 200) { ProductRepresentation prdrpr = objectmapper.readvalue( response.getbody().toinputstream(), ProductRepresentation.class); prdrpr.tostring(); }

78 Pros und Cons von RESTful Klienten Das Umgehen mit allen REST Aspekten ist natürlich und unproblematisch (z.b. HATEOS Links folgen) Impliziert OO Man muss anderes denken und programmieren. Problemchen.

79 UML JBoss 11. Architekturüberlegungen JEE Java Spring EJB OOP Hibernate

80 Nicht funktionale Aspekte Load Balancing ist sehr einfach, z.b. mit Apache Failover ist sehr einfach. Keine cluster-aware Stubs usw. Proxing, Requests umschreiben, weiterleiten, usw. Caching ist mit HTTP dabei Security (Firewalls, SSL, Basic/Form/Digest Authentication, JEE Security, usw.) Monitoren und Testen ist unproblematisch: Browser, curl, wget, usw..net kann HTTP, Java kann HTTP, Python kann HTTP, Perl kann HTTP, Cobol kann HTTP (?), usw.

81 Dokumentieren Versionieren Security Custom Media Types Out of Scope

82 UML JBoss Ende. Fragen? JEE Java Spring EJB OOP Hibernate

NoSQL User Group Cologne

NoSQL User Group Cologne NoSQL User Group Cologne Dieser Vortrag wurde im Rahmen eines Treffens der NoSQL User Group Cologne am 03.08.2011 gehalten. Wir treffen uns immer am ersten Mittwoch des Monats. Weitere Informationen zur

Mehr

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin

REST Grundlagen. Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web. Olga Liskin <olga.liskin@gmail.com> REST Grundlagen Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web Olga Liskin Übersicht Motivation, Einführung Architekturstil REST RESTful Webservices Patterns,

Mehr

Web-Konzepte für das Internet der Dinge Ein Überblick

Web-Konzepte für das Internet der Dinge Ein Überblick Web-Konzepte für das Internet der Dinge Ein Überblick Samuel Wieland sawielan@student.ethz.ch ETH Zürich Seminar Das Internet der Dinge Historisches Tim Berners-Lee Erster Web-Server Bildquelle: Wikimedia

Mehr

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services?

Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services? Web APIs auf dem Prüfstand Volle Kontrolle oder fertig mit den Azure Mobile Services? Web APIs Wo kommen wir her? Remote Procedure Calls (RPC) Verben/Aktionen im Endpunkt enthalten GetCustomer InsertInvoice

Mehr

RESTful Web. Representational State Transfer

RESTful Web. Representational State Transfer RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten

Mehr

Dirk von der Weiden, Olaf Meyer C1 SetCon. REST in the Enterprise

Dirk von der Weiden, Olaf Meyer C1 SetCon. REST in the Enterprise Konferenz Dirk von der Weiden, Olaf Meyer C1 SetCon REST in the Enterprise REST in the Enterprise C1 SetCon GmbH Stand: Januar 2010 Copyright 2010 C1 SetCon GmbH Member of C1 Group Einleitung Worum geht

Mehr

HTTP Hypertext Transfer Protocol

HTTP Hypertext Transfer Protocol Ein Vortrag aus der Reihe inf.misc 8. Juni 2005 50. Geburtstag von Tim Berners-Lee Inhalt 1 2 3 Content Negotiation Caching Authentifizierung 4 Definition RFC 2616, Abstract: The Hypertext Transfer Protocol

Mehr

ODS 6.0 Schnittstelle

ODS 6.0 Schnittstelle ODS 6.0 Schnittstelle Dieter Müller Server Developer 1 Architektur ODS-Schnittstelle Vergleich ODS 5.x ODS 6.0 ODS 5.x ODS 6.0 ODS Client ODS Server ODS Client ODS Server Stub ORB IIOP Generiert aus

Mehr

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS

Aktuelle Technologien zur Entwicklung verteilter Anwendungen RESTful Web Services mit JAX-RS Aktuelle Technologien zur Entwicklung verteilter Anwendungen Überblick, Grundlagen und Entwicklung mit Java Gliederung A. I. Web Services II. RESTful Web Services III. Java API for RESTful Web Services

Mehr

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt Mobilkommunikation REST-basierte Dienste für verteilte, mobile Anwendungen A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt Fachhochschule Köln, Institut für Nachrichtentechnik Fachhochschule Köln Anton Gillert,

Mehr

Rechnernetze Übung 12

Rechnernetze Übung 12 Rechnernetze Übung 12 Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juli 2011 Sie kennen sicherlich sogenannte Web-Mailer, also WWW-Oberflächen über die Sie Emails lesen und vielleicht

Mehr

VIP-LMS Anbindung. Uni Stgt. 27. Juni 2014. Version: 2.6

VIP-LMS Anbindung. Uni Stgt. 27. Juni 2014. Version: 2.6 Heiko Bernlöhr FreeIT.de VIP-LMS Anbindung Per Pascal Grube Uni Stgt. Thomas Richter Uni Stgt. 27. Juni 2014 David Boehringer Uni Stgt. Stephan Rudlof Uni Stgt. Version: 2.6 Zusammenfassung Maximale Integration

Mehr

1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit XML- und Webservice- Sicherheit 1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol Gliederung Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen 3. HTTP-Methoden 4. Header 5. Ein Beispiel 6. Performance

Mehr

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling Open-Xchange Authentication & Sessionhandling Version Date Author Changes 1.0 28.08.2006 Stephan Martin Initiale Version 1.1 29.08.2006 Marcus Klein Details Authentication via JSON 1.2 04.09.2006 Stephan

Mehr

HTTP Squid Debugging-Hilfen Praxis. Der Webproxy Squid. Ein Überblick und ein wenig (viel) HTTP. Dirk Geschke. Linux User Group Erding

HTTP Squid Debugging-Hilfen Praxis. Der Webproxy Squid. Ein Überblick und ein wenig (viel) HTTP. Dirk Geschke. Linux User Group Erding Der Webproxy Ein Überblick und ein wenig (viel) HTTP Linux User Group Erding 28. April 2010 Gliederung HTTP 1 HTTP 2 3 4 HTTP Überblick HTTP Hypertext Transfer Protocol dient der Übertragung von Daten

Mehr

2 Hypertext Transfer Protocol (HTTP)

2 Hypertext Transfer Protocol (HTTP) 2 Hypertext Transfer Protocol (HTTP) Aus der Definition von HTTP/1.1 (RFC 2616): The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information

Mehr

RESTful Services mit Java EE

RESTful Services mit Java EE RESTful Services mit Java EE Thilo Frotscher thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und Trainer Fachliche Schwerpunkte Java Plattform Services und Integration Kundenspezifische

Mehr

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften

Sicheres HTTP. 8. Juni 2004. Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP 8. Juni 2004 Proseminar Electronic Commerce und digitale Unterschriften Sicheres HTTP HTTP über SSL = sicheres HTTP Überblick HTTP: Protokoll zur Datenübertragung im Internet Klartextprotokoll

Mehr

REST: Eine leichtgewichtige und einfachere Alternative zu Web Services. W3L AG info@w3l.de

REST: Eine leichtgewichtige und einfachere Alternative zu Web Services. W3L AG info@w3l.de 1 REST: Eine leichtgewichtige und einfachere Alternative zu Web Services W3L AG info@w3l.de 2009 2 Inhalt Einführung Grundprinzipien der REST-Architektur Beispiel Entwurf von REST-Anwendungen REST mit

Mehr

Frank Kleine, Nico Steiner 1&1 Internet AG. Frontend-Performance mit PHP

Frank Kleine, Nico Steiner 1&1 Internet AG. Frontend-Performance mit PHP Frank Kleine, Nico Steiner 1&1 Internet AG Frontend-Performance mit PHP Vorstellung Frank Kleine Head of Web Infrastructure Nico Steiner Experte für Frontend T&A Frontend-Performance mit PHP 2 Vorstellung

Mehr

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen Wolkig bis heiter APEX als Drehkreuz für Web Service-Anwendungen Andreas Wismann WHEN OTHERS Beratung Projektmanagement Coaching rund um Oracle Application Express In APEX Informationen von "woanders"

Mehr

XML- und Webservice- Sicherheit

XML- und Webservice- Sicherheit XML- und Webservice- Sicherheit 1. Das World Wide Web 1.3 Das Hypertext Transfer Protocol Gliederung Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen Literatur: A. S. Tanenbaum, Computer Networks, 4th. Ed.,

Mehr

Theorie und Praxis einer JSON-RPC-basierten Web-API

Theorie und Praxis einer JSON-RPC-basierten Web-API Theorie und Praxis einer JSON-RPC-basierten Web-API Christian Krause Christian.Krause@raritan.com Raritan Deutschland GmbH Chemnitzer LinuxTage 2015 Gliederung 1 2 Remote Procedure Call Interface Definition

Mehr

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request)

HTTP Kommunikation (1)Request. HTTP - Überblick. HTTP Kommunikation (3) HTTP Kommunikation (2) Beispiel: Die folgende URL werde angefordert (Request) 15. Das Hypertext Transfer Protokoll 15-1 15. Das Hypertext Transfer Protokoll 15-2 HTTP - Überblick HTTP Kommunikation (1)Request 1. Requests und Responses 2. Content Negotiation 3. State Management (Cookies)

Mehr

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075

9RUOHVXQJDo 13.00-14.00 Uhr Hörsaal 2 EG 0006 3UDNWLNXP Do 14.00-16.00 Uhr PC-Labor U1075 Praxis der Internet-Programmierung mit Java, Apache und XML (JAX) Institut für Informatik Martin.Guggisberg@unibas.ch KWWSMD[QDQRZRUOGRUJ -$9$ ;0/ $3$&+( Organisatorisches =HLWHQ" 9RUOHVXQJDo 13.00-14.00

Mehr

Literatur. [2-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Webtechnologien SS 2015 - Teil 2/HTTP

Literatur. [2-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Webtechnologien SS 2015 - Teil 2/HTTP Literatur [2-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [2-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [2-3] Hypertext Transfer

Mehr

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E.

Bemerkung: Jede Ressource sollte über einen. Ressource A. Ressource. eindeutigen Namen verfügen. Ressource F. Ressource. Ressource E. 10 Hypertext Transfer Protocol 10.1 Hypermedia 10.2 Universal Resource Identifier 10.3 Nachrichten 10.4 Proxy 10.5 Cache 10.6 Authentifizierung 10.7 S Hypermedia: A D C B E F Bemerkung: Jede sollte über

Mehr

!"# $ % Internet Protokolle: HTTP 1/38

!# $ % Internet Protokolle: HTTP 1/38 !"# $ % Internet Protokolle: HTTP 1/38 1 Themenübersicht Schichtenmodell Gopher /FTP Statistik URL Einleitung Anwendungsablauf Beispiel mit Telnet Request, Response Anfragemethoden header Negotiation Proxyserver

Mehr

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal

Groovy und CouchDB. Ein traumhaftes Paar. Thomas Westphal Groovy und CouchDB Ein traumhaftes Paar Thomas Westphal 18.04.2011 Herzlich Willkommen Thomas Westphal Software Engineer @ adesso AG Projekte, Beratung, Schulung www.adesso.de thomas.westphal@adesso.de

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke)

Netzwerke und Verteilte Systeme: TCP/IP. (Vorabversion der Umdrucke) 1 WS 2000/2001 LVA Netzwerke und Verteilte Systeme (Jörg. R. Mühlbacher, Peter R. Dietmüller, Rudolf Hörmanseder, Dietmar Rimser) Teil HTTP (Peter René Dietmüller) Rückblick 1989 CERN, Tim Berners-Lee

Mehr

0.1 XForms: XML Submission

0.1 XForms: XML Submission 0.1 XForms: XML Submission URI scheme method Serialization Submission http https mailto post application/xml HTTP POST or equivalent http https get application/x-www-form-urlencoded HTTP GET or equivalent

Mehr

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1

Inhaltsverzeichnis. Vorwort... Einleitung... Einführung... 1 Vorwort... Einleitung... V VII Einführung... 1 1 Grundlagen... 7 1.1 Dokumentmodelle... 7 1.1.1 Multimedia... 8 1.1.2 Hypermedia... 9 1.1.3 Verteilung... 11 1.2 Geschichte des WWW... 13 1.2.1 Struktur...

Mehr

Crashkurs http - CGI/Servlets(JSF) - Viewer

Crashkurs http - CGI/Servlets(JSF) - Viewer jkrueger(at)cebitec.uni-bielefeld.de http TCP Referenzmodell : ApplicationLayer zustandloses Protokoll textbasiert für Hypertext entwickelt ist es nicht darauf beschränkt Nachrichten : Request : Client

Mehr

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier

y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier +\SHUWH[W7UDQVIHU3URWRFRO +773 (ULN:LOGH 7,.² (7+= ULFK 6RPPHUVHPHVWHU hehuvlfkw y Hypertext braucht Ressourcen-Identifikation y Unterschied zwischen Link und Identifier y Universal Resource Identifier

Mehr

REST in Pieces. Jörn Clausen joern@techfak.uni-bielefeld.de

REST in Pieces. Jörn Clausen joern@techfak.uni-bielefeld.de REST in Pieces Jörn Clausen joern@techfak.uni-bielefeld.de Worum geht es? Dissertation Architectural Styles and the Design of Network-based Software Architectures von Roy T. Fielding, UC Irvine, 2000 [...

Mehr

In diesem Impressum hat sich die Euroweb Internet GmbH selbst als Ersteller der Webseiten markiert:

In diesem Impressum hat sich die Euroweb Internet GmbH selbst als Ersteller der Webseiten markiert: In dem aufgeführten Schriftsatz vom 22.10.2010 bestreiten die Beschuldigten auf Seiten 6 und 7 vorsätzlich falsch dass die Euroweb Internet GmbH den Apache Webserver, PHP, sowie weiter MySQL und Plesk

Mehr

Einstieg Projektziel Proxy Grundlagen Demonstration Ausblick. Reverse Proxys. Robert Hilbrich. Fakultät für Informatik Humboldt Universität Berlin

Einstieg Projektziel Proxy Grundlagen Demonstration Ausblick. Reverse Proxys. Robert Hilbrich. Fakultät für Informatik Humboldt Universität Berlin Reverse Proxys Robert Hilbrich Fakultät für Informatik Humboldt Universität Berlin 28. September 2006 John von Neumann, 1949 It would appear that we have reached the limits of what it is possible to achieve

Mehr

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP

Literatur. [12-5] Upgrading to TLS Within HTTP/1.1 http://tools.ietf.org/html/rfc2817. Netzwerke - WS 2013/14 - Teil 12/HTTP Literatur [12-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [12-2] Badach, Anatol; Rieger, Sebastian; Schmauch, Matthias: Web- Technologien. Hanser, 2003 [12-3] Hypertext

Mehr

10 Caching. 10.1 Expirationsmodell

10 Caching. 10.1 Expirationsmodell 127 GET is one of the most optimized pieces of distributed systems plumbing in the world. Don Box, Webservices-Guru und SOAP-Miterfinder Die Unterstützung von Caching und das conditional GET sind zentrale

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

Inhaltsverzeichnis. 2.1 Eine kurze Geschichte von REST... 9 2.2 Grundprinzipien... 11 2.3 Zusammenfassung... 17

Inhaltsverzeichnis. 2.1 Eine kurze Geschichte von REST... 9 2.2 Grundprinzipien... 11 2.3 Zusammenfassung... 17 xi 1 Einleitung 1 1.1 Warum REST?...................................... 1 1.1.1 Lose Kopplung................................ 2 1.1.2 Interoperabilität............................... 3 1.1.3 Wiederverwendung.............................

Mehr

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht

Themen. Anwendungsschicht DNS HTTP. Stefan Szalowski Rechnernetze Anwendungsschicht Themen Anwendungsschicht DNS HTTP Anwendungsschicht OSI-Schicht 7, TCP/IP-Schicht 4 Dienste für den Nutzer/Anwender Unabhängig von den niederen Schichten Verschiedene Dienste bzw. Services DNS HTTP FTP,

Mehr

Web Grundlagen zum Spidering

Web Grundlagen zum Spidering May 22, 2009 Outline Adressierung 1 Adressierung 2 3 4 Uniform Resource Locator URL Jede Seite im Internet wird eindeutig über eine URL identiziert, z.b. http://www.christianherta.de/informationretrieval/index.html

Mehr

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL

Protokolle. Konrad Rosenbaum, 2006/7 protected under the GNU GPL & FDL TCP/IP: Standard Protokolle Konrad Rosenbaum, 2006/7 DNS - Domain Name System hierarchische, global verteilte Datenbank löst Namen in IP-Adressen auf Host hat einen primären Nameserver, der Fragen selbst

Mehr

Anwendungsprotokolle: HTTP, POP, SMTP

Anwendungsprotokolle: HTTP, POP, SMTP Anwendungsprotokolle: HTTP, POP, SMTP TCP? UDP? Socket? eingesetzt, um Webseiten zu übertragen Zustandslos Nutzt TCP Client schickt Anfrage ( HTTP-Request ) an Server, Server schickt daraufhin Antwort

Mehr

SOA mit.net: Vom Geschäftsprozess zur Lösung

SOA mit.net: Vom Geschäftsprozess zur Lösung SOA mit.net: Vom Geschäftsprozess zur Lösung Manfred Steyer Aktuelles Buch.Net 4.0 Update ISBN 978-3866454439 http://tinyurl.com/net4update 1 Kontakt [www] www.softwarearchitekt.at [mail] Manfred.Steyer@SoftwareArchitekt.at

Mehr

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs

4. Servlets Ein kleiner Einstieg. Kurze Java Historie. Erinnerung: Internet Anwendungen. Konzept eines Seitenaufrufs 4. s Ein kleiner Einstieg Erinnerung: HTTP und HTML Idee von Web n und Containern Erstellung einfacher s (zunächst software technisch übelst unstrukturiert) Literatur: B. Basham, K. Sierra, B. Bates, Head

Mehr

HIN Client API. Technische Schnittstelle. Version: 1.0 Datum: 01.11.2010 Status: Final

HIN Client API. Technische Schnittstelle. Version: 1.0 Datum: 01.11.2010 Status: Final HIN Client API Technische Schnittstelle Version: 1.0 Datum: 01.11.2010 Status: Final Health Info Net AG (HIN) Pflanzschulstrasse 3 8400 Winterthur support@hin.ch www.hin.ch Tel. 0848 830 740 Inhaltsverzeichnis

Mehr

HTTP. Hypertext Transfer Protocol. 4. Februar 2004

HTTP. Hypertext Transfer Protocol. 4. Februar 2004 HTTP Hypertext Transfer Protocol Bernhard Möller bmoeller@techfak.uni-bielefeld.de René Tünnermann rtuenner@techfak.uni-bielefeld.de 4. Februar 2004 1 Einleitung Das Hypertext Transfer Protokoll wird bereits

Mehr

Newsletter2Go - API Dokumentation

Newsletter2Go - API Dokumentation Newsletter2Go - API Dokumentation Changelog: (version 1.0 version 1.1) - Zwei neue optionale Parameter (opentracking, linktracking) in Email versenden Funktion (version 0.9 version 1.0) - category ist

Mehr

6 REST-Services mit JAX-RS und Jersey

6 REST-Services mit JAX-RS und Jersey 269 6 REST-Services mit JAX-RS und Jersey Heutzutage ist es weit verbreitet, dass Applikationen als verteilte Systeme realisiert werden und verschiedene Systembestandteile auf unterschiedlichen Rechnern

Mehr

Beispiel einer Anwendung: HTTP

Beispiel einer Anwendung: HTTP Beispiel einer Anwendung: HTTP» HTTP: Hypertext Transfer Protocol The Hypertext Transfer Protocol (HTTP) is an application-level protocol with the lightness and speed necessary for distributed, collaborative,

Mehr

A-Trust REGISTRIERKASSE mobile Developer Manual

A-Trust REGISTRIERKASSE mobile Developer Manual A-Trust Gesellschaft für Sicherheitssysteme im elektronischen Datenverkehr GmbH Landstraÿer Hauptstraÿe 5 A-1030 Wien https://www.a-trust.at E-Mail: oce@a-trust.at A-Trust REGISTRIERKASSE mobile Developer

Mehr

Kommunikationsnetze. 7. Das World Wide Web 7.2 Das Hypertext Transfer Protocol. Kommunikationsnetze 7. Das World Wide Web 7.3 HTTP

Kommunikationsnetze. 7. Das World Wide Web 7.2 Das Hypertext Transfer Protocol. Kommunikationsnetze 7. Das World Wide Web 7.3 HTTP Kommunikationsnetze 7.2 Das Hypertext Transfer Protocol Gliederung 1. HTTP 1.0 vs. 1.1 2. Verbindungen 3. HTTP-Methoden 4. Header 5. Ein Beispiel 6. Performance 7. SSL Literatur: A. S. Tanenbaum, Computer

Mehr

Einleitung SMTP Grundlagen HTTP 1.1 Session Management in HTTP HTTP HTTP 0.9

Einleitung SMTP Grundlagen HTTP 1.1 Session Management in HTTP HTTP HTTP 0.9 HTTP 0.9 Die Urversion des Hypertext Transport Protocols bietet ein einfaches Request-Response Modell aufbauend auf einer TCP Verbindung. Client baut eine TCP Verbindung auf, der Default für den Zielport

Mehr

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG

REST-Schnittstellen Dokumentation und Testing. Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG REST-Schnittstellen Dokumentation und Testing Adrian Moos (adrian.moos@bedag.ch) Technology Advisor Bedag Informatik AG Inhalt Einleitung Dokumentation und Ad-Hoc-Testing Testautomation Fazit Seite 2 Softwareentwicklung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Webprogrammierung Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 22 Inhalt Vorlesungsüberblick

Mehr

Service-Orientierte Architekturen

Service-Orientierte Architekturen Hochschule Bonn-Rhein-Sieg Service-Orientierte Architekturen Kapitel 8: REST Vorlesung im Masterstudiengang Informatik Sommersemester 2010 Prof. Dr. Sascha Alda (sascha.alda@h-brs.de) (Vorläufiger) Aufbau

Mehr

RESTful Web Services mit Java

RESTful Web Services mit Java RESTful Web Services mit Java Prinzipiell lassen sich REST-konforme Anwendungen schon seit langem mit dem Servlet API realisieren schließlich ist die Grundvoraussetzung nur die Unterstützung von Webstandards

Mehr

goalio Documentation Release 1.0.0 goalio UG

goalio Documentation Release 1.0.0 goalio UG goalio Documentation Release 1.0.0 goalio UG 18.11.2014 Inhaltsverzeichnis 1 Erste Schritte mit goalio 1 1.1 Benutzeroberfläche............................................ 1 1.2 Suche...................................................

Mehr

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG 05.07.2012 Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG Agenda 01 Einführung 02 Architektur 03 Lösungen 04 Zusammenfassung 2 2 Agenda 01 Einführung 02

Mehr

GeoServer in action Fortgeschrittene Möglichkeiten beim Einsatz des Geoservers

GeoServer in action Fortgeschrittene Möglichkeiten beim Einsatz des Geoservers GeoServer in action Fortgeschrittene Möglichkeiten beim Einsatz des Geoservers Nils Bühner buehner@terrestris.de terrestris GmbH & Co KG Über uns Nils Bühner buehner@terrestris.de github.com/buehner Informatiker

Mehr

VMware vrealize Log Insight- Entwicklerhandbuch

VMware vrealize Log Insight- Entwicklerhandbuch VMware vrealize Log Insight- Entwicklerhandbuch vrealize Log Insight 2.5 Dieses Dokument unterstützt die aufgeführten Produktversionen sowie alle folgenden Versionen, bis das Dokument durch eine neue Auflage

Mehr

Security of Online Social Networks

Security of Online Social Networks Security of Online Social Networks Interfaces Lehrstuhl IT-Sicherheitsmanagment Universität Siegen May 3, 2012 Lehrstuhl IT-Sicherheitsmanagment 1/38 Recapitulation Graph Model formal data representation

Mehr

!"#$"%&'()*$+()',!-+.'/',

!#$%&'()*$+()',!-+.'/', Soziotechnische Informationssysteme 7. OAuth, OpenID und SAML Inhalte Motivation OAuth OpenID SAML 4(5,12316,7'.'0,!.80/6,9*$:'0+$.;.,&0$'0, 3, Grundlagen Schützenswerte Objekte Zugreifende Subjekte Authentifizierung!

Mehr

Web 2.0 Architekturen und Frameworks

Web 2.0 Architekturen und Frameworks Web 2.0 Architekturen und Frameworks codecentric GmbH Mirko Novakovic codecentric GmbH Quality Technische Qualitätssicherung in Software-Projekten mit Fokus auf Performance, Verfügbarkeit und Wartbarkeit

Mehr

M2M-Serviceplattformen für das Internet der Dinge

M2M-Serviceplattformen für das Internet der Dinge M2M-Serviceplattformen für das Internet der Dinge Klaus-Dieter Walter SSV Software Systems GmbH, Hannover kdw@ssv-embedded.de 20.11.2013 1 Agenda Wer ist SSV Software Systems? Hintergründiges zu IoT, M2M,

Mehr

Vergleich SOAP und REST

Vergleich SOAP und REST Softwareentwicklung und Hypermedia Fachhochschule Dortmund Fachbereich Informatik Betreuer: Prof. Dr. Thiesing - 7042882-7042911 SS 2004 / Mai 2004 1 Einführung Was sind Web Services? Unter Web Services

Mehr

SOAP Schnittstelle von SHAB/Simap/KAB ZH. Version 3.0

SOAP Schnittstelle von SHAB/Simap/KAB ZH. Version 3.0 SOAP Schnittstelle von SHAB/Simap/KAB ZH Version 3.0 Inhaltsverzeichnis 1 Einleitung... 4 2 Beschreibung... 5 2.1 Voraussetzung für die Benutzung des Webservice... 5 2.2 Der Soapserver... 5 2.3 Aufruf

Mehr

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze)

Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze) Webtechnologien Teil 2: Hypertext Transfer Protokoll (Wiederholung aus Rechnernetze) 23.03.15 1 Literatur [2-1] Gourley, David; Totty, Brian: HTTP. The definitive Guide. O'Reilly, 2002 [2-2] Badach, Anatol;

Mehr

Anleitung REST API Schneelast-Messsystem SMS

Anleitung REST API Schneelast-Messsystem SMS Anleitung REST API Schneelast-Messsystem SMS Version 2.01 REST API Schneelast-Messsystem SMS Die API (Schnittstelle) ist als sogenannter RESTful Webservice angelegt, bei dem jede Funktion über eine eindeutige

Mehr

Best Practices API s. Max Horváth, Steffen Irrgang, Andre Zayarni

Best Practices API s. Max Horváth, Steffen Irrgang, Andre Zayarni Best Practices API s Max Horváth, Steffen Irrgang, Andre Zayarni Agenda / Was ist zu beachten? Grundlagen / Vorüberlegungen Request und Response Format Authentifizierung und Security Performance API-Tests

Mehr

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010 Gerald.Ehmayer@borland.com Web Services Java Praktikum SS 2010 Gerald.Ehmayer@borland.com 1 Web Services Einführung Definition, Eigenschaften, Anwendungen... JAX-RPC Überblick, Architektur... JAX Übersicht, Architektur Java Praktikum

Mehr

Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle. Stefan Hornburg. Perlworkshop 2008

Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle. Stefan Hornburg. Perlworkshop 2008 Automatisierung und Integration von Request Tracker Systemen mittels REST-Schnittstelle Stefan Hornburg Perlworkshop 2008 split() Request Tracker REST-Schnittstelle Automatisierung Integration Kunden Deutschland:

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Wolfgang Gassler Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 HTML Hypertext Markup

Mehr

RESTful Web-Services mit JAX-RS

RESTful Web-Services mit JAX-RS JUG Stuttgart RESTful Web-Services mit JAX-RS 30. Oktober 2014 Alter Scheuer, Stuttgart-Degerloch Markus KARG (Expert Group JSR 339, 370 / JAX-RS 2.0, 2.1) Agenda Was ist nur so toll an diesem REST? JAX-RS

Mehr

HTTP - Hypertext Transfer Protcol

HTTP - Hypertext Transfer Protcol HTTP - Hypertext Transfer Protcol Wird verwendet seit 1990 1996 erste öffentliche Spezifikation durch RFC 1945 HTTP/1.0, frühere Version unter HTTP/0.9 bekannt. Standardisiert in Version HTTP/1.1 durch

Mehr

24.04.2010 Statistik für www.faustballcenter.ch (2009)

24.04.2010 Statistik für www.faustballcenter.ch (2009) 24.04.2010 Statistik für www.faustballcenter.ch () Statistik für: www.faustballcenter.ch Zuletzt aktualisiert: 24.04.2010-02:53 Zeitraum: - Jahr - OK Wann: Wer: Navigation: Verweise: Sonstige: Monatliche

Mehr

JAX-RS 2.0 REST mit Java EE 7

JAX-RS 2.0 REST mit Java EE 7 Enterprise Java, Web Services und XML JAX-RS 2.0 REST mit Java EE 7 Java User Group Darmstadt 13. Juni 2013 http://www.frotscher.com thilo@frotscher.com Vorstellung Freiberuflicher Softwarearchitekt und

Mehr

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:

Mehr

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH

APEX und Workflows: Spaghetticode oder Integration. Sven Böttcher. Consultant, Apps Associates GmbH APEX und Workflows: Spaghetticode oder Integration Sven Böttcher Consultant, Apps Associates GmbH Apps Associates Apps Associates gegründet 2002 in Boston (HQ) seit 2003 GDC in Hyderabad seit 2006 in Dortmund

Mehr

Java - Webapplikationen

Java - Webapplikationen Java - Webapplikationen Bestandteile (HTTP,, JSP) Aufbau (Model View Controller) Datenverwaltung (Java Beans, Sessions) Entwicklung (Projektstruktur, Sysdeoplugin für Eclipse) 17. Januar 2006 Jan Hatje

Mehr

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Sicherheit von Webapplikationen Sichere Web-Anwendungen Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda 2 Web Technologien l HTTP(Hypertext Transfer Protocol): zustandsloses Protokoll über TCP auf Port 80 HTTPS Verschlüsselt

Mehr

http://login-38.hoststar.ch/user/web146/awstats.php?month=05&year=2014&output=...

http://login-38.hoststar.ch/user/web146/awstats.php?month=05&year=2014&output=... Statistik für web146 (-05) - main http://login-38.hoststar.ch/user/web146/awstats.php?month=05&year=&output=... Page 1 of 6 10.07. Statistik für: web146 Zuletzt aktualisiert: 10.07. - 20:23 Zeitraum: Mai

Mehr

New Features Oracle Forms 11g Nichts Neu für Forms?

New Features Oracle Forms 11g Nichts Neu für Forms? New Features Oracle Forms 11g Nichts Neu für Forms? Perry Pakull Technology Manager perry.pakull@trivadis.com Zürich, 20.04.2010 Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br.

Mehr

Java EE 6 Ein Überblick

Java EE 6 Ein Überblick Java EE 6 Ein Überblick Bernd Müller Fakultät Informatik Ostfalia Hochschule Braunschweig/Wolfenbüttel GI-Regionalgruppe Braunschweig, 16.2.2012 Bernd Müller, Fakultät Informatik, Ostfalia, 16.2.2012 1/31

Mehr

NoSQL Datenbanken am Beispiel von CouchDB

NoSQL Datenbanken am Beispiel von CouchDB NoSQL Datenbanken am Beispiel von CouchDB OIO - Hauskonferenz 2011 Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thomas Bayer Programmierer

Mehr

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

1 Einführung... 25. 2 Die Grundlagen... 55. 3 Praxis 1 das Kassenbuch (zentraler CouchDB-Server)... 139. 4 Praxis 2 das Kassenbuch als CouchApp...

1 Einführung... 25. 2 Die Grundlagen... 55. 3 Praxis 1 das Kassenbuch (zentraler CouchDB-Server)... 139. 4 Praxis 2 das Kassenbuch als CouchApp... Auf einen Blick 1 Einführung... 25 2 Die Grundlagen... 55 3 Praxis 1 das Kassenbuch (zentraler CouchDB-Server)... 139 4 Praxis 2 das Kassenbuch als CouchApp... 161 5 CouchDB-Administration... 199 6 Bestehende

Mehr

[RESTful Webservices mit JAX-RS]

[RESTful Webservices mit JAX-RS] 2011 Felix Barnsteiner Aktuelle Technologien zur Entwicklung verteilter Java Anwendungen Betreut von Michael Theis Bearbeitet von [RESTful Webservices mit JAX-RS] Inhaltsverzeichnis 1. Einleitung... 1

Mehr

Zend Framework MVC Applikationen testen

Zend Framework MVC Applikationen testen Zend Framework MVC Applikationen testen Jan Burkl, System Engineer, Zend Technologies Wer bin ich? Jan Burkl jan.burkl@zend.com PHP Entwickler seit 2001 Projektarbeit Bei Zend seit 2006 System Engineer

Mehr

Einführung. Internet vs. WWW

Einführung. Internet vs. WWW Einführung Bernhard Plattner 1-1 Internet vs. WWW "the Internet is the entirety of all computers which are interconnected (using various physical networking technologies) and employ the Internet protocol

Mehr

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis

Webservices. Grundlagen, Beispiel, Tomcat, Apache Axis Webservices Grundlagen, Beispiel, Tomcat, Apache Axis Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Was ist ein WebService Eine oder mehrere Methoden die über das Netzwerk aufgerufen werden

Mehr

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand 22.10.2014

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand 22.10.2014 SMS-API Sloono Schnittstellenbeschreibung Version 1.2 Stand 22.10.2014 Diese Seiten über die SLOONO-APIs sollen Ihnen helfen SLOONO in Ihre bestehenden Anwendungen zu integrieren oder neue Anwendungen

Mehr

Einführung in CouchDB

Einführung in CouchDB Einführung in CouchDB Zurücklehnen und entspannen! http://slog.io Thomas Schrader (@slogmen) 12/2010 Übersicht Bestandsaufnahme Ansatz Geschichte Technologien Features Skalierbarkeit Kurz & Gut Fazit Relationale

Mehr

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de

XML-RPC, SOAP und Web Services. Jörn Clausen joern@techfak.uni-bielefeld.de XML-RPC, SOAP und Web Services Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Was ist RPC? Was hat XML mit RPC zu tun? Was sind XML-RPC und SOAP? Was sind Web Services? Wird das die Welt retten?

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Programmieren von Webinformationssystemen

Programmieren von Webinformationssystemen Programmieren von Webinformationssystemen Nikolaus Krismer Databases and Information Systems (DBIS) Institute of Computer Science University of Innsbruck dbis-informatik.uibk.ac.at 1 PHP Ursprünglich:

Mehr