GraphQL, das bessere REST?
|
|
- Elisabeth Knopp
- vor 5 Jahren
- Abrufe
Transkript
1 Die Beschaffungsplattform für Geschäftskunden GraphQL, das bessere REST? Jörg Adler, Benjamin Otto,
2 Mercateo Mercateo ist Europas führende Beschaffungsplattform. > 1 Mio. Geschäftskunden 21 Mio. Artikel mehr als Hersteller Die Beschaffungsplattform für Geschäftskunden 2
3 Mercateo Mercateo ist Europas führende Beschaffungsplattform. > 1 Mio. Geschäftskunden 21 Mio. Artikel mehr als Hersteller Entwicklung von der Beschaffungsplattform zur Transaktionsplattform Massive Veränderungen in der IT-Landschaft Jörg Adler adler Benjamin Otto otbe Die Beschaffungsplattform für Geschäftskunden 2
4 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Die Beschaffungsplattform für Geschäftskunden 3
5 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Order mit id, state und articles Die Beschaffungsplattform für Geschäftskunden 3
6 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Order mit id, state und articles Order mit States processing, canceled, shipped, returned Die Beschaffungsplattform für Geschäftskunden 3
7 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Order mit id, state und articles Order mit States processing, canceled, shipped, returned Übergang processing canceled (optional) Die Beschaffungsplattform für Geschäftskunden 3
8 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Order mit id, state und articles Order mit States processing, canceled, shipped, returned Übergang processing canceled (optional) Übergang processing shipped returned (optional) Die Beschaffungsplattform für Geschäftskunden 3
9 Beispiel Beispiel Nachfolgend beziehen sich alle Folien auf das folgende Beispiel Order API Order mit id, state und articles Order mit States processing, canceled, shipped, returned Übergang processing canceled (optional) Übergang processing shipped returned (optional) Implementiertes Java-Beispiel: Die Beschaffungsplattform für Geschäftskunden 3
10 GraphQL? Was ist GraphQL? Die Beschaffungsplattform für Geschäftskunden 4
11 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. Die Beschaffungsplattform für Geschäftskunden 5
12 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. gedacht als dünner API Layer zwischen Client und Backend Die Beschaffungsplattform für Geschäftskunden 5
13 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. gedacht als dünner API Layer zwischen Client und Backend initialer Draft von 2015 von Facebook Die Beschaffungsplattform für Geschäftskunden 5
14 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. gedacht als dünner API Layer zwischen Client und Backend initialer Draft von 2015 von Facebook Spec (OWFA 1.0) + Referenzimplementierung (MIT) auf Github verfügbar Die Beschaffungsplattform für Geschäftskunden 5
15 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. gedacht als dünner API Layer zwischen Client und Backend initialer Draft von 2015 von Facebook Spec (OWFA 1.0) + Referenzimplementierung (MIT) auf Github verfügbar wird seither als Community Draft weiterentwickelt Die Beschaffungsplattform für Geschäftskunden 5
16 GraphQL? GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. gedacht als dünner API Layer zwischen Client und Backend initialer Draft von 2015 von Facebook Spec (OWFA 1.0) + Referenzimplementierung (MIT) auf Github verfügbar wird seither als Community Draft weiterentwickelt GraphQL Schema als Contract zwischen Client und Server Die Beschaffungsplattform für Geschäftskunden 5
17 GraphQL Schema Schema besteht aus Query, Mutation und Subscription Die Beschaffungsplattform für Geschäftskunden 6
18 GraphQL Schema Schema besteht aus Query, Mutation und Subscription Primitive Datentypen: Int, Float, String, Boolean, ID Die Beschaffungsplattform für Geschäftskunden 6
19 GraphQL Schema Schema besteht aus Query, Mutation und Subscription Primitive Datentypen: Int, Float, String, Boolean, ID Neue Datentypen können mit scalar, type, interface, union, enum oder input definiert werden Die Beschaffungsplattform für Geschäftskunden 6
20 GraphQL Schema Schema besteht aus Query, Mutation und Subscription Primitive Datentypen: Int, Float, String, Boolean, ID Neue Datentypen können mit scalar, type, interface, union, enum oder input definiert werden Cheat Sheet Die Beschaffungsplattform für Geschäftskunden 6
21 Die Beschaffungsplattform für Geschäftskunden 7
22 GraphQL Status Quo Status Quo Die Beschaffungsplattform für Geschäftskunden 8
23 GraphQL Status Quo Transport: HTTP POST* auf /graphql Endpoint mit Query im Body Die Beschaffungsplattform für Geschäftskunden 9
24 GraphQL Status Quo Transport: HTTP POST* auf /graphql Endpoint mit Query im Body * dadurch ist Caching schwierig; allerdings kann auch GET mit Query Parameter verwendet werden oder Persisted Queries Die Beschaffungsplattform für Geschäftskunden 9
25 GraphQL Status Quo Transport: HTTP POST* auf /graphql Endpoint mit Query im Body * dadurch ist Caching schwierig; allerdings kann auch GET mit Query Parameter verwendet werden oder Persisted Queries one query to rule them all - beliebig tief geschachtelte Queries können geschrieben werden Die Beschaffungsplattform für Geschäftskunden 9
26 GraphQL Status Quo Transport: HTTP POST* auf /graphql Endpoint mit Query im Body * dadurch ist Caching schwierig; allerdings kann auch GET mit Query Parameter verwendet werden oder Persisted Queries one query to rule them all - beliebig tief geschachtelte Queries können geschrieben werden Tooling Die Beschaffungsplattform für Geschäftskunden 9
27 GraphQL Tooling - GraphiQL Die Beschaffungsplattform für Geschäftskunden 10
28 GraphQL Tooling - Launchpad Die Beschaffungsplattform für Geschäftskunden 11
29 GraphQL Tooling - Apollo Dev Die Beschaffungsplattform für Geschäftskunden 12
30 GraphQL Tooling - graphql-faker Die Beschaffungsplattform für Geschäftskunden 13
31 GraphQL Status Quo Transport: HTTP POST* auf /graphql Endpoint mit Query im Body * dadurch ist Caching schwierig; allerdings kann auch GET mit Query Parameter verwendet werden oder Persisted Queries one query to rule them all - beliebig tief geschachtelte Queries können geschrieben werden Tooling Wer nutzt GraphQL? Die Beschaffungsplattform für Geschäftskunden 14
32 Die Beschaffungsplattform für Geschäftskunden 15
33 GraphQL Beispiel Die Beschaffungsplattform für Geschäftskunden 16
34 GraphQL Beispiel Datenbeschreibung 1 enum STATE { 2 SHIPPED 3 PROCESSING 4 CANCELED 5 RETURNED 6 } 7 8 type Order { 9 id: ID! 10 state : STATE 11 articles : [ Article ]! 12 } type Query { 15 orders ( limit : Int, offset : Int ): [ Order ]! 16 } Die Beschaffungsplattform für Geschäftskunden 17
35 GraphQL Beispiel Datenbeschreibung 1 enum STATE { 2 SHIPPED 3 PROCESSING 4 CANCELED 5 RETURNED 6 } 7 8 type Order { 9 id: ID! 10 state : STATE 11 articles : [ Article ]! 12 } type Query { Anfrage 1 { 2 orders { 3 id 4 state 5 } 6 } 15 orders ( limit : Int, offset : Int ): [ Order ]! 16 } Die Beschaffungsplattform für Geschäftskunden 17
36 GraphQL Beispiel Datenbeschreibung 1 enum STATE { 2 SHIPPED 3 PROCESSING 4 CANCELED 5 RETURNED 6 } 7 8 type Order { 9 id: ID! 10 state : STATE 11 articles : [ Article ]! 12 } type Query { Anfrage 1 { 2 orders { 3 id 4 state 5 } 6 } Ergebnis 1 { 2 " orders ": [ { 3 "id": " ", 4 " state ": " PROCESSING " 5 } ] 6 } 15 orders ( limit : Int, offset : Int ): [ Order ]! 16 } Die Beschaffungsplattform für Geschäftskunden 17
37 REST Die Beschaffungsplattform für Geschäftskunden 18
38 REST Einführung REST ist eine Architektur Die Beschaffungsplattform für Geschäftskunden 19
39 REST Einführung REST ist eine Architektur es gibt keinen (Implementierungs-)Standard, nur Constraints (Client-Server, Stateless, Cache, Uniform Interface, Layered System, Code on Demand) Die Beschaffungsplattform für Geschäftskunden 19
40 REST Einführung REST ist eine Architektur es gibt keinen (Implementierungs-)Standard, nur Constraints (Client-Server, Stateless, Cache, Uniform Interface, Layered System, Code on Demand) speziell die Forderung nach einem uniformen Interface macht REST langsam The trade-off, though, is that a uniform interface degrades efficiency, since information is transferred in a standardized form rather than one which is specific to an application s needs. Fielding, Roy T., Dissertation Die Beschaffungsplattform für Geschäftskunden 19
41 REST Einführung REST ist eine Architektur es gibt keinen (Implementierungs-)Standard, nur Constraints (Client-Server, Stateless, Cache, Uniform Interface, Layered System, Code on Demand) speziell die Forderung nach einem uniformen Interface macht REST langsam The trade-off, though, is that a uniform interface degrades efficiency, since information is transferred in a standardized form rather than one which is specific to an application s needs. Fielding, Roy T., Dissertation Software design on the scale of decades: every detail is intended to promote software longevity and independent evolution. Many of the constraints are directly opposed to short-term efficiency. Fielding, Roy T. REST APIs must be hypertext-driven Die Beschaffungsplattform für Geschäftskunden 19
42 REST HATEOAS Hypermedia as the Engine of Application State Die Beschaffungsplattform für Geschäftskunden 20
43 REST HATEOAS Hypermedia as the Engine of Application State integraler Bestandteil von REST REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state Fielding, Roy T., Dissertation Die Beschaffungsplattform für Geschäftskunden 20
44 REST HATEOAS Hypermedia as the Engine of Application State integraler Bestandteil von REST REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state Fielding, Roy T., Dissertation Zustandsübergänge am Client ausschließlich über Links vom Server Die Beschaffungsplattform für Geschäftskunden 20
45 REST HATEOAS Hypermedia as the Engine of Application State integraler Bestandteil von REST REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state Fielding, Roy T., Dissertation Zustandsübergänge am Client ausschließlich über Links vom Server Links kommen nur dynamisch vom Server Die Beschaffungsplattform für Geschäftskunden 20
46 REST HATEOAS Hypermedia as the Engine of Application State integraler Bestandteil von REST REST is defined by four interface constraints: identification of resources; manipulation of resources through representations; self-descriptive messages; and, hypermedia as the engine of application state Fielding, Roy T., Dissertation Zustandsübergänge am Client ausschließlich über Links vom Server Links kommen nur dynamisch vom Server im Client nur eine Einsprungs-URL und das Wissen über die Linknamen Die Beschaffungsplattform für Geschäftskunden 20
47 Ist GraphQL nun das bessere REST? Die Beschaffungsplattform für Geschäftskunden 21
48 Ist GraphQL nun das bessere REST? Es ist nicht vergleichbar. Die Beschaffungsplattform für Geschäftskunden 21
49 Vielen Dank für Ihre Aufmerksamtkeit :) Die Beschaffungsplattform für Geschäftskunden 22
50 DDD Domain Driven Design hilft beim Schnitt von Microservices Die Beschaffungsplattform für Geschäftskunden 23
51 DDD Domain Driven Design hilft beim Schnitt von Microservices wir legen hier Wert auf die Abgrenzung von Bounded Contexts Die Beschaffungsplattform für Geschäftskunden 23
52 DDD Domain Driven Design hilft beim Schnitt von Microservices wir legen hier Wert auf die Abgrenzung von Bounded Contexts auch für Monolithen mit Schnittstellen wichtig Die Beschaffungsplattform für Geschäftskunden 23
53 DDD Domain Driven Design hilft beim Schnitt von Microservices wir legen hier Wert auf die Abgrenzung von Bounded Contexts auch für Monolithen mit Schnittstellen wichtig Businesslogik am Server kapseln Die Beschaffungsplattform für Geschäftskunden 23
54 DDD REST-Naiv reines CRUD 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 } 1 PUT / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " RETURNED ", 6 } Die Beschaffungsplattform für Geschäftskunden 24
55 DDD REST-Naiv reines CRUD 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 } 1 PUT / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " RETURNED ", 6 } Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Die Beschaffungsplattform für Geschäftskunden 24
56 DDD REST-Naiv reines CRUD 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 } 1 PUT / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " RETURNED ", 6 } Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Alle Clients implementieren dafür Code Businesslogik sehr schwer änderbar Die Beschaffungsplattform für Geschäftskunden 24
57 DDD REST-HATEOAS Entscheidung wann etwas möglich ist kommt vom Server über Links 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 " _links ": { 7 " return ": { " href ": "/ orders /1" } 8 } 9 } Die Beschaffungsplattform für Geschäftskunden 25
58 DDD REST-HATEOAS Entscheidung wann etwas möglich ist kommt vom Server über Links 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 " _links ": { 7 " return ": { " href ": "/ orders /1" } 8 } 9 } Es muss dokumentiert werden, welche und wie Statusübergänge möglich sind Die Beschaffungsplattform für Geschäftskunden 25
59 DDD REST-HATEOAS Entscheidung wann etwas möglich ist kommt vom Server über Links 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 " _links ": { 7 " return ": { " href ": "/ orders /1" } 8 } 9 } Es muss dokumentiert werden, welche und wie Statusübergänge möglich sind Clients können uniform feststellen, wann Statusübergänge möglich sind Die Beschaffungsplattform für Geschäftskunden 25
60 DDD HATEOAS und Schema II mit Schema: CRUD wird etwas abgemildert mit Schema: Clients können flexibel auf Payloadänderungen reagieren 1 GET / orders /1 2 { 3 "id": "1", 4 " articles ":..., 5 " state ": " SHIPPED " 6 " _schema ": { 7 " links ": [ 8 { " href ": " http :// localhost :9090/ orders /1", 9 " schema ": { " type ": " object ", 10 " properties ": { 11 " state ": { " type ": " string ", 12 " enum ": [" RETURNED "] }}}, 13 " rel ": " return ", 14 " method ": " PATCH "}]}} Die Beschaffungsplattform für Geschäftskunden 26
61 DDD REST-HATEOAS ohne CRUD zusätzlich sollte ein Update von komplexen Ressourcen nicht möglich sein Die Beschaffungsplattform für Geschäftskunden 27
62 DDD REST-HATEOAS ohne CRUD zusätzlich sollte ein Update von komplexen Ressourcen nicht möglich sein Man erstellt eine Art Kommando Die Beschaffungsplattform für Geschäftskunden 27
63 DDD REST-HATEOAS ohne CRUD zusätzlich sollte ein Update von komplexen Ressourcen nicht möglich sein Man erstellt eine Art Kommando Welches Kommando man erstellen darf, wird über Links kommuniziert Die Beschaffungsplattform für Geschäftskunden 27
64 DDD REST-HATEOAS ohne CRUD zusätzlich sollte ein Update von komplexen Ressourcen nicht möglich sein Man erstellt eine Art Kommando Welches Kommando man erstellen darf, wird über Links kommuniziert Die Implementierung wird hier sehr viel einfacher, kein rätseln am Server mehr Die Beschaffungsplattform für Geschäftskunden 27
65 DDD REST-HATEOAS ohne CRUD zusätzlich sollte ein Update von komplexen Ressourcen nicht möglich sein Man erstellt eine Art Kommando Welches Kommando man erstellen darf, wird über Links kommuniziert Die Implementierung wird hier sehr viel einfacher, kein rätseln am Server mehr Zusätzliche Daten können erhoben werden Die Beschaffungsplattform für Geschäftskunden 27
66 DDD HATEOAS und Schema 1 GET / orders / { " href ": " http :// localhost :9090/ returns ", 4 " schema ": {" type ": " object ", 5 " properties ": { 6 "id": {" type ": " uuid "}, 7 " message ": {" type ": " string "}, 8 " orderid ": {" type ": " string ", 9 " enum ": ["1"]}}, 10 " required ": [" message "," orderid ","id"]}, 11 " method ": " PUT ", 12 " rel ": " return "}... Die Beschaffungsplattform für Geschäftskunden 28
67 DDD GraphQL-Naiv reine CRUD Mutations 1 createorder ( order ) 2 updateorder ( order ) Die Beschaffungsplattform für Geschäftskunden 29
68 DDD GraphQL-Naiv reine CRUD Mutations 1 createorder ( order ) 2 updateorder ( order ) Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Die Beschaffungsplattform für Geschäftskunden 29
69 DDD GraphQL-Naiv reine CRUD Mutations 1 createorder ( order ) 2 updateorder ( order ) Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Alle Clients implementieren dafür Code Die Beschaffungsplattform für Geschäftskunden 29
70 DDD GraphQL-Naiv reine CRUD Mutations 1 createorder ( order ) 2 updateorder ( order ) Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Alle Clients implementieren dafür Code Businesslogik sehr schwer änderbar Die Beschaffungsplattform für Geschäftskunden 29
71 DDD GraphQL-Naiv reine CRUD Mutations 1 createorder ( order ) 2 updateorder ( order ) Es muss dokumentiert werden, wann welche Statusübergänge möglich sind Alle Clients implementieren dafür Code Businesslogik sehr schwer änderbar Kommt bekannt vor? :) Die Beschaffungsplattform für Geschäftskunden 29
72 DDD GraphQL Commands Kein CRUD mehr 1 cancelorder ( orderid : ID!, message : String ) 2 returnorder ( orderid : ID!, message : String ) Die Beschaffungsplattform für Geschäftskunden 30
73 DDD GraphQL Commands Kein CRUD mehr 1 cancelorder ( orderid : ID!, message : String ) 2 returnorder ( orderid : ID!, message : String ) Es muss immer noch dokumentiert werden, wann welche Statusübergänge möglich sind Die Beschaffungsplattform für Geschäftskunden 30
74 DDD GraphQL Commands Kein CRUD mehr 1 cancelorder ( orderid : ID!, message : String ) 2 returnorder ( orderid : ID!, message : String ) Es muss immer noch dokumentiert werden, wann welche Statusübergänge möglich sind Reduziert Komplexität im Client und Server Die Beschaffungsplattform für Geschäftskunden 30
75 DDD GraphQL HATEOAS Extensions Wie können wir darstellen, welche Statusübergänge im aktuellen Zustand möglich sind? Die Beschaffungsplattform für Geschäftskunden 31
76 DDD GraphQL HATEOAS Extensions Wie können wir darstellen, welche Statusübergänge im aktuellen Zustand möglich sind? Relay-Style Pagination 1 { 2 orders { 3 edges { 4 node { 5 id 6 state 7 } } 12 } 13 } Die Beschaffungsplattform für Geschäftskunden 31
77 DDD GraphQL HATEOAS Extensions Wie können wir darstellen, welche Statusübergänge im aktuellen Zustand möglich sind? Relay-Style Pagination Statusinformationen in den Kanten 1 { 2 orders { 3 edges { 4 node { 5 id 6 state 7 } } 12 } 13 } 1 { 2 orders { 3 edges { 4 node { 5 id 6 state 7 } 8 9 returnorder 10 cancelorder 11 } 12 } 13 } Die Beschaffungsplattform für Geschäftskunden 31
78 CQRS Command/Query Responsibility Segregation Trennung von Kommandos (Schreiben) und Querys (Lesen) Die Beschaffungsplattform für Geschäftskunden 32
79 CQRS Command/Query Responsibility Segregation Trennung von Kommandos (Schreiben) und Querys (Lesen) auf Modellierungs- und Deploymentebene Die Beschaffungsplattform für Geschäftskunden 32
80 CQRS Command/Query Responsibility Segregation Trennung von Kommandos (Schreiben) und Querys (Lesen) auf Modellierungs- und Deploymentebene dadurch getrennt entwickelbar, skalierbar, deploybar Die Beschaffungsplattform für Geschäftskunden 32
81 CQRS Command/Query Responsibility Segregation Trennung von Kommandos (Schreiben) und Querys (Lesen) auf Modellierungs- und Deploymentebene dadurch getrennt entwickelbar, skalierbar, deploybar Voraussetzung für Eventsourcing Die Beschaffungsplattform für Geschäftskunden 32
82 CQRS Command/Query Responsibility Segregation Trennung von Kommandos (Schreiben) und Querys (Lesen) auf Modellierungs- und Deploymentebene dadurch getrennt entwickelbar, skalierbar, deploybar Voraussetzung für Eventsourcing Bedeutet aber auch Aufwand! Nutzen abwägen. Die Beschaffungsplattform für Geschäftskunden 32
83 CQRS REST Mit Ressourcen auf Command-Ebene geht dies sehr gut Aufpassen bei Rückgabe von PUT/POST Die Beschaffungsplattform für Geschäftskunden 33
84 CQRS REST Mit Ressourcen auf Command-Ebene geht dies sehr gut Aufpassen bei Rückgabe von PUT/POST Auf natürliche Weise kann Eventsourcing unterstützt werden Die Beschaffungsplattform für Geschäftskunden 33
85 CQRS Command/Query Responsibility Segregation Die Beschaffungsplattform für Geschäftskunden 34
86 CQRS REST II auch spätere Einführung möglich. 1 PUT / returns... 2 { 3 " _links ": { 4 " canonical ": { " href ": "/ returns /4?eventSeq=47" } 5 } 6 } Die Beschaffungsplattform für Geschäftskunden 35
87 CQRS GraphQL Mutations (als Commands) sind bereits von Queries getrennt Die Beschaffungsplattform für Geschäftskunden 36
88 CQRS GraphQL Mutations (als Commands) sind bereits von Queries getrennt Grundsätzlich kann bei einer Mutation ein beliebiges Objekt gelesen/zurückgegeben werden Die Beschaffungsplattform für Geschäftskunden 36
89 CQRS GraphQL Mutations (als Commands) sind bereits von Queries getrennt Grundsätzlich kann bei einer Mutation ein beliebiges Objekt gelesen/zurückgegeben werden Im Relay Umfeld werden häufig alle abhängigen Änderungen gelesen damit der Client die Caches updaten kann Die Beschaffungsplattform für Geschäftskunden 36
90 CQRS GraphQL Mutations (als Commands) sind bereits von Queries getrennt Grundsätzlich kann bei einer Mutation ein beliebiges Objekt gelesen/zurückgegeben werden Im Relay Umfeld werden häufig alle abhängigen Änderungen gelesen damit der Client die Caches updaten kann Alternative: Mutation + Subscription nutzen Die Beschaffungsplattform für Geschäftskunden 36
91 API First API First in GraphQL ist das Schema fester Bestandteil des Standards Die Beschaffungsplattform für Geschäftskunden 37
92 API First API First in GraphQL ist das Schema fester Bestandteil des Standards Entwickler von Server und Client haben dies jederzeit, API first at its best. Die Beschaffungsplattform für Geschäftskunden 37
93 API First API First in GraphQL ist das Schema fester Bestandteil des Standards Entwickler von Server und Client haben dies jederzeit, API first at its best. API-First Hilfsmittel für REST prinzipiell vorhanden (Open-API 3.0, Json-Hyperschema, RAML) Die Beschaffungsplattform für Geschäftskunden 37
94 API First API First in GraphQL ist das Schema fester Bestandteil des Standards Entwickler von Server und Client haben dies jederzeit, API first at its best. API-First Hilfsmittel für REST prinzipiell vorhanden (Open-API 3.0, Json-Hyperschema, RAML) native Unterstützung nur für statische Links Die Beschaffungsplattform für Geschäftskunden 37
95 API First API First in GraphQL ist das Schema fester Bestandteil des Standards Entwickler von Server und Client haben dies jederzeit, API first at its best. API-First Hilfsmittel für REST prinzipiell vorhanden (Open-API 3.0, Json-Hyperschema, RAML) native Unterstützung nur für statische Links Bei beiden: HATEOAS mit dynamischen Links erfordert basteln Die Beschaffungsplattform für Geschäftskunden 37
96 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren Die Beschaffungsplattform für Geschäftskunden 38
97 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren durch Schaffen von sehr großen Read-Only Ressourcen Die Beschaffungsplattform für Geschäftskunden 38
98 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren durch Schaffen von sehr großen Read-Only Ressourcen durch eingebettete Ressourcen (siehe zum Beispiel HAL-Format) Die Beschaffungsplattform für Geschäftskunden 38
99 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren durch Schaffen von sehr großen Read-Only Ressourcen durch eingebettete Ressourcen (siehe zum Beispiel HAL-Format) durch Auflösen von Links bis zu einer gewissen Tiefe (siehe zum Beispiel Contentful-API) Die Beschaffungsplattform für Geschäftskunden 38
100 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren durch Schaffen von sehr großen Read-Only Ressourcen durch eingebettete Ressourcen (siehe zum Beispiel HAL-Format) durch Auflösen von Links bis zu einer gewissen Tiefe (siehe zum Beispiel Contentful-API) alles händischer Aufwand Die Beschaffungsplattform für Geschäftskunden 38
101 Fazit Disclaimer Man kann auch für REST auf wenige Requests optimieren durch Schaffen von sehr großen Read-Only Ressourcen durch eingebettete Ressourcen (siehe zum Beispiel HAL-Format) durch Auflösen von Links bis zu einer gewissen Tiefe (siehe zum Beispiel Contentful-API) alles händischer Aufwand beim Formulieren von Queries häufig kompliziert Die Beschaffungsplattform für Geschäftskunden 38
102 Fazit Wann REST Firma/Kunden haben sich schon längere Zeit auf REST commitet in diesem Fall kann man aber trotzdem beides anbieten (schlankes Graph-QL-Lambda vor den REST-Schnittstellen) Die Beschaffungsplattform für Geschäftskunden 39
103 Fazit Wann REST Firma/Kunden haben sich schon längere Zeit auf REST commitet in diesem Fall kann man aber trotzdem beides anbieten (schlankes Graph-QL-Lambda vor den REST-Schnittstellen) HTTP-Caching ist relevant (interne Schnittstellen, öffentliche Schnittstellen ohne HTTPS,...) Die Beschaffungsplattform für Geschäftskunden 39
104 Fazit Wann GraphQL man möchte eine hohe Standardisierung in Schnittstellen-Design und Tooling Die Beschaffungsplattform für Geschäftskunden 40
105 Fazit Wann GraphQL man möchte eine hohe Standardisierung in Schnittstellen-Design und Tooling Performance spielt wesentliche Rolle (Frontends,...) Die Beschaffungsplattform für Geschäftskunden 40
106 Fazit Wann GraphQL man möchte eine hohe Standardisierung in Schnittstellen-Design und Tooling Performance spielt wesentliche Rolle (Frontends,...) Umfeld akzeptiert neue Herangehensweisen Die Beschaffungsplattform für Geschäftskunden 40
107 Fazit Wann GraphQL man möchte eine hohe Standardisierung in Schnittstellen-Design und Tooling Performance spielt wesentliche Rolle (Frontends,...) Umfeld akzeptiert neue Herangehensweisen If your API is not using hypermedia controls, then GraphQL could be a more relevant approach, because you weren t really using REST anyway. Phil Sturgeon, Platform WeWork Die Beschaffungsplattform für Geschäftskunden 40
108 Fazit Wann GraphQL man möchte eine hohe Standardisierung in Schnittstellen-Design und Tooling Performance spielt wesentliche Rolle (Frontends,...) Umfeld akzeptiert neue Herangehensweisen If your API is not using hypermedia controls, then GraphQL could be a more relevant approach, because you weren t really using REST anyway. Empfehlung: unbedingt anschauen! :) Phil Sturgeon, Platform WeWork Die Beschaffungsplattform für Geschäftskunden 40
109 Vielen Dank für Ihre Aufmerksamkeit. Fragen? :) Die Beschaffungsplattform für Geschäftskunden 41
110 Fazit Verweise Seite 10: GraphiQL Seite 11: Launchpad Seite 12: Apollo Developers Seite 13: graphql-faker Seite 15: Die Beschaffungsplattform für Geschäftskunden 42
MICROSERVICES-SCHNITT JETZT MIT GRAPHQL!
MICROSERVICES-SCHNITT JETZT MIT GRAPHQL! 05.07.2018 Matthias Koch Agenda 1. Überblick über das Framework 2. GraphQL vs. REST 3. GraphQL als API-Gateway? 2 Agenda 1. Überblick über das Framework 2. GraphQL
MehrBackend. Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017. Christopher Dörge, Thomas Sauer, David Müller
Backend Hochschule Darmstadt, Fachbereich Informatik, Wintersemester 2016/2017 Christopher Dörge, Thomas Sauer, David Müller Aufbau einer RESTful API mit... Ziel node.js, express und MongoDB Symfony und
MehrWenn. Schnittstellen. alt werden... Claus Straube IT Architekt
Wenn Schnittstellen alt werden... Claus Straube IT Architekt claus.straube@muenchen.de A B Provider Consumer Request A Response B Provider Consumer Payload Request A Response B Provider Consumer Payload
MehrArchitektur von REST basierten Webservices
28.11.2005 Architektur von REST basierten Webservices Referent MARK ALTHOFF REST was invented by ROY T. FIELDING and RICHARD N. TAYLOR Geschichtlicher Hintergrund von REST 1994-1995 taucht der Begriff
MehrBRÜHL MÄRZ
NILS HARTMANN GraphQL für Java-Entwickler Slides: https://bit.ly/javaland-graphql JAVALAND, BRÜHL MÄRZ 2019 @NILSHARTMANN NILS HARTMANN Freiberuflicher Entwickler, Architekt, Trainer aus Hamburg Java JavaScript,
Mehrals Alternative zu REST Manuel
als Alternative zu REST Manuel Mauky @manuel_mauky Single-Page-Apps und mobile Apps API Wie kommen die Daten zum Client? API? Klassisch: REST/Hypermedia zahlreiche Ressourcen, jeweils über URIs erreichbar
MehrServerless Computing mit AWS-Lambda
Die Beschaffungsplattform für Geschäftskunden Serverless Computing mit AWS-Lambda Jörg Adler und Benjamin Otto, 29.9.2017 Wir @ Mercateo Mercateo ist Europas führende Beschaffungsplattform. > 1 Mio. Geschäftskunden
MehrNeue Welten: Externe Daten mit APEX nutzen
Neue Welten: Externe Daten mit APEX nutzen Carsten Czarski Oracle Application Express Development-Team DOAG Regio München - 17. Mai 2018 Copyright 2017 Oracle and/or its affiliates. All rights reserved.
MehrSchnittstellenarchitektur in Zeiten sich wandelnder Frontend-Technologien
Schnittstellenarchitektur in Zeiten sich wandelnder Frontend-Technologien Version: 1.0 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer,
MehrSODA. Die Datenbank als Document Store. Rainer Willems. Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG
SODA Die Datenbank als Document Store Rainer Willems Master Principal Sales Consultant Oracle Deutschland B.V. & Co. KG vs No Anforderungskonflikte Agile Entwicklung Häufige Schema-Änderungen Relationales
MehrServerless Computing
Die Bescha ungsplattform für Geschäftskunden Serverless Computing mit AWS-Lambda Jörg Adler, 31.3.2017 Wir @ Mercateo Mercateo ist Europas führende Bescha ungsplattform. > 1Mio.Geschäftskunden 21 Mio.
MehrUnified-E Standard WebHttp Adapter
Unified-E Standard WebHttp Adapter Version: 1.5.0.2 und höher Juli 2017 Inhalt 1 Allgemeines... 2 2 Adapter-Parameter in Unified-E... 2 3 Symbolische Adressierung... 3 3.1 ReadValues-Methode... 4 3.2 WriteValues
MehrEntwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams. Jan Kruse, utilitas GmbH
Entwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams Jan Kruse, utilitas GmbH 15.01.2018 Gliederung Einleitung Motivation Ziele Grundlagen ASP.Net Web API REST-API Microsoft
MehrDeep-Dive Workshop: Virtualisierung der Softwareentwicklung
Deep-Dive Workshop: Virtualisierung der Softwareentwicklung Hanna Behnke, Lukas Böhme, Jonas Grunert, Alexander Reichenbach, Andreas Schmietendorf, Steffen Viebrock 1 Impuls Minuten 2 Hintergrund zum Forschungsbereich
MehrWeb-API Design mit Java
@_openknowledge Web-API Design mit Java API-First Design mit ÜBER OPEN KNOWLEDGE BRANCHENNEUTRALE SOFTWAREENTWICKLUNG UND IT-BERATUNG ÜBER UNS SM STEPHAN MÜLLER Wer bin ich - und wenn ja, wie viele? Enterprise
MehrREST 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,
MehrDirk 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
MehrDelphi MVC Framework. Mathias Pannier
Delphi MVC Framework Mathias Pannier Über mich Name: Mathias Pannier Position: Softwareentwickler/Teamleiter Mehr als 15 Jahre Erfahrung mit Softwareentwicklung in Delphi Blog: DMVCFramework Delphi MVC
MehrGraphQL als Alternative zu REST
GraphQL als Alternative zu REST Manuel Mauky, Saxonia Systems AG GraphQL ist eine Abfragesprache für Web-APIs, mit der Web- und Mobile-Anwendungen Daten vom Server beziehen könnten. Es stellt damit eine
MehrREST Services in APEX Anwendungen nutzen
REST Services in APEX Anwendungen nutzen Carsten Czarski - @cczarski Consulting Member of technical Staff Oracle Application Express ORACLE Deutschland B.V. & Co KG REST: Representational State Transfer
MehrREST Services To-Go Einfacher Einstieg in die REST Programmierung
REST Services To-Go Einfacher Einstieg in die REST Programmierung 04.07.2017 Version 1.0 Seite 1 Zur Person Marcus Blum Oracle Forms seit 1994 (Forms 3 / Oracle 6 aufwärts) Fokus auf Oracle APEX seit 2007
MehrIT S ALL ABOUT THE DOMAIN, HONEY!
IT S ALL ABOUT THE DOMAIN, HONEY! Fachliche Architektur In hoher Qualitaet durch Domain-Driven design @hschwentner Was ist das für 1 Design? @hschwentner Vong Domain her @hschwentner HENNING SCHWENTNER
MehrNotesSession.GetPropertyBroker( )
Bestandteile von CA Laufen im Rich Client (Notes oder Expeditor) oder via Portal Server im Browser NSF-Komponenten sind Notes-Designelemente Eclipse Komponenten sind Eclipse ViewParts lokale oder Websphere
MehrForms auf Tablets. Vision oder Realität?
Forms auf Tablets Vision oder Realität? Die handelnden Personen Jan-Peter Timmermann Entwickler seit 1985 (Informix) OCP Oracle Forms/Reports, PL/SQL Seit 2000 bei Unternehmen wie Opitz, Trivadis und PITSS
MehrSOLID für.net und JavaScript
SOLID für.net und JavaScript www.binarygears.de Stefan Dirschnabel Twitter: @StefanDirschnab #dncgn SOFTWARE ENTWICKLUNG BERATUNG SCHULUNG 5 Prinzipien für das Design von Software Wartbarer Code Leicht
Mehr(Building) Flexible Functional Programming Interfaces. Von Amos Treiber
(Building) Flexible Functional Programming Interfaces Von Amos Treiber Gliederung Funktionale Programmierung Einführung Aspekte Vergleich: Funktional vs Imperativ Bending the language towards the problem
MehrWeb-Services mit Go. Sebastian tokkee Harl OpenRheinRuhr 07. November 2015 Oberhausen
Web-Services mit Go Sebastian tokkee Harl OpenRheinRuhr 07. November 2015 Oberhausen Überblick Was ist Go? Go is an open source programming language that makes it easy to build simple,
MehrCreating OpenSocial Gadgets. Bastian Hofmann
Creating OpenSocial Gadgets Bastian Hofmann Agenda Part 1: Theory What is a Gadget? What is OpenSocial? Privacy at VZ-Netzwerke OpenSocial Services OpenSocial without Gadgets - The Rest API Part 2: Practical
MehrIst GraphQL das bessere REST?
Ist GraphQL das bessere REST? checkdomain 174 TSD Aktive Domains 48 TSD 22 Aktive Kunden Festangestellte Mitarbeiter PHP, Symfony, NodeJS, React, MySQL, MongoDB, RabbitMQ, DDD, Git, Gitlab CI, Ansible,
MehrODS 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
MehrServerless IoT_. Serverless fleet tracking at scale with AWS IoT and Lambda Conrad Pöpke
Serverless IoT_ Serverless fleet tracking at scale with AWS IoT and Lambda 29.03.2017 - Conrad Pöpke Anonymisiertes PoC Beispiel 2 Beispiel_ Bus Management Service für Busunternehmen Koordination der Flotte
MehrRESTful API Grundlagen mit PHP und Payrexx
RESTful API Grundlagen mit PHP und Payrexx Autor: Michael Räss, michael.raess@payrexx.com Stand: 21.11.2017 Payrexx AG Ziele Begriffe und Definition verstehen Prinzipien / Funktionsweise kennenlernen Grundlagen
MehrContext-adaptation based on Ontologies and Spreading Activation
-1- Context-adaptation based on Ontologies and Spreading Activation ABIS 2007, Halle, 24.09.07 {hussein,westheide,ziegler}@interactivesystems.info -2- Context Adaptation in Spreadr Pubs near my location
Mehrdatenlink-schnittstelle Version 1.0
www.datenlink.info datenlink-schnittstelle Version 1.0 Inhalt 1 Allgemeines 2 1.1 Datenaustausch... 2 1.2 Zugriffstypen... 2 2 Format der Rückgabewerte 3 2.1 HTTP-Statuscodes... 3 2.2 Rückgabewerte...
MehrREST IN PEACE MIT ORACLE
REST IN PEACE MIT ORACLE ORDS, NODE.JS, ADF, JAVA ODER OSB Ulrich Gerkmann-Bartels und Andreas Koop ÜBER UNS Ulrich Gerkmann-Bartels Geschäftsführung und Consulting Andreas Koop Geschäftsführung und Consultant
MehrJAX-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
Mehrp^db=`oj===pìééçêíáåñçêã~íáçå=
p^db=`oj===pìééçêíáåñçêã~íáçå= Error: "Could not connect to the SQL Server Instance" or "Failed to open a connection to the database." When you attempt to launch ACT! by Sage or ACT by Sage Premium for
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016
Overview The Hamburg Süd VGM-Portal is an application which enables to submit VGM information directly to Hamburg Süd via our e-portal web page. You can choose to insert VGM information directly, or download
MehrÜber mich. Daniel Bälz. Softwareentwickler (inovex GmbH) github.com/dbaelz
Quo vadis Dart? Über mich Daniel Bälz Softwareentwickler (inovex GmbH) dbaelz.de plus.dbaelz.de github.com/dbaelz Agenda Was Wie Warum Wohin Was ist Dart? Übersicht Einsatzgebiet Client (Browser, CLI)
MehrM2M-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,
MehrWeb-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
MehrEntwicklung einer Webapplikation zur Vereinfachung der Umsetzung webbasierter Anwendungen
Entwicklung einer Webapplikation zur Vereinfachung der Umsetzung webbasierter Anwendungen Python-BarCamp 2016 02. 03. April 2016 Florian Macherey PGI / JCNS-TA Inhalt Einleitung Grundlagen Konzeption Implementierung
MehrFOLIO EINFÜHRUNG. Richard Redweik Universitätsbibliothek Leipzig
FOLIO EINFÜHRUNG Richard Redweik redweik@ub.uni-leipzig.de Universitätsbibliothek Leipzig 28.09.2017 AGENDA 1. Motivation 2. FOLIO a. Übersicht b. Okapi c. Stripes 3. Zusammenfassung MOTIVATION Warum FOLIO?
MehrSkalierbare Webanwendungen
Skalierbare Webanwendungen Thomas Bachmann Lead Software Architect & CIO Mambu GmbH Twitter: @thobach Anwendungsbeispiel Hohe Nichtfunktionale Anforderungen Sicherheit Vertraulichkeit Integrität Verfügbarkeit
MehrBIW Wahlpflichtmodul. Einführung in Solr, Pipeline und REST. Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany
BIW Wahlpflichtmodul Einführung in Solr, Pipeline und REST Philipp Schaer, TH Köln (University of Applied Sciences), Cologne, Germany Version: 2018-05-29 Überblick über gängige Lösungen 2 3 in a nutshell
MehrForms Desktop Kooperation
Forms Desktop Kooperation Oracle Forms in Integration & Interaktion Forms Day 2019 Motivation Kennen Sie diese Argumente? Kein modernes GUI.. fehlende Komponenten Forms zu starr und wird als Insel empfunden
MehrXML-Technologien Tutorium 6
XML-Technologien Tutorium 6 Thema: Semantic Web Linked Data RDF SPARQL von: Kain Kordian Gontarska kainkordian@gmail.com Semantic Web Das Internet soll nicht nur aus "dummen" Inhalten bestehen. (Ansammlung
MehrGrundlagen der Programmierung in C Klassen
Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral
Mehr+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.
+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Oracle Mobile Cloud Service (MCS) MCS SDK & MAF MCS
MehrVom MicroService zum Geschäftsprozess Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart
Vom MicroService zum Geschäftsprozess Thomas Bröll Principal Consultant Trivadis GmbH, Stuttgart BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART
MehrGridMate The Grid Matlab Extension
GridMate The Grid Matlab Extension Forschungszentrum Karlsruhe, Institute for Data Processing and Electronics T. Jejkal, R. Stotzka, M. Sutter, H. Gemmeke 1 What is the Motivation? Graphical development
MehrWie man heute die Liebe fürs Leben findet
Wie man heute die Liebe fürs Leben findet Sherrie Schneider Ellen Fein Click here if your download doesn"t start automatically Wie man heute die Liebe fürs Leben findet Sherrie Schneider Ellen Fein Wie
MehrSchöpfung als Thema des Religionsunterrichts in der Sekundarstufe II (German Edition)
Schöpfung als Thema des Religionsunterrichts in der Sekundarstufe II (German Edition) Juliane Timmroth Click here if your download doesn"t start automatically Schöpfung als Thema des Religionsunterrichts
MehrProgressive Web Apps mit APEX. Till Albert
Progressive Web Apps mit APEX Till Albert 09.05.2019 Facts & Figures IT-Beratungsunternehmen Branchen übergreifend Hersteller neutral Hauptsitz Ratingen Niederlassung Frankfurt am Main 250 Beschäftigte
MehrThomas Schissler MVP Visual Studio ALM, artiso AG
Thomas Schissler MVP Visual Studio ALM, artiso AG Kurs-Übersicht Moderne Softwareentwicklung 01 Überblick Was macht moderne Software-Entwicklung aus? 02 Projektmanagement Wie funktioniert modernes Projektmanagement
MehrWeb 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
MehrGroovy 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
MehrPython zur Lösung von AvA Übung 1 VON MORITZ FEY
Python zur Lösung von AvA Übung 1 VON MORITZ FEY Übersicht 2 Einführung Socket-Schnittstellen Datei-Zugriff Aufbau der Nachrichten und Serialisierung Besonderheiten von Python Realisierung des Programms
MehrInformatik II Übung 7 Gruppe 7
Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1 Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen.
MehrWebbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient
Webbasierte Exploration von großen 3D-Stadtmodellen mit dem 3DCityDB Webclient Zhihang Yao, Kanishk Chaturvedi, Thomas H. Kolbe Lehrstuhl für Geoinformatik www.gis.bgu.tum.de 11/14/2015 Webbasierte Exploration
MehrPlatform as a Service (PaaS) & Containerization
Platform as a Service (PaaS) & Containerization Open Source Roundtable Bundesverwaltung; Bern, 23. Juni 2016 André Kunz Chief Communications Officer Peter Mumenthaler Head of System Engineering 1. Puzzle
MehrVGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016
Overview The Hamburg Süd VGM Web portal is an application that enables you to submit VGM information directly to Hamburg Süd via our e-portal Web page. You can choose to enter VGM information directly,
MehrErmittlung des Maschinenstundensatzes (Unterweisung Industriekaufmann / -kauffrau) (German Edition)
Ermittlung des Maschinenstundensatzes (Unterweisung Industriekaufmann / -kauffrau) (German Edition) Click here if your download doesn"t start automatically Ermittlung des Maschinenstundensatzes (Unterweisung
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrSoziale Arbeit mit rechten Jugendcliquen: Grundlagen zur Konzeptentwicklung (German Edition)
Soziale Arbeit mit rechten Jugendcliquen: Grundlagen zur Konzeptentwicklung (German Edition) Click here if your download doesn"t start automatically Soziale Arbeit mit rechten Jugendcliquen: Grundlagen
MehrStand und Planungen im Bereich der Schnittstellen in der VZG
Stand und Planungen im Bereich der Schnittstellen in der VZG Jakob Voß 28. August 2013, 17. Verbundkonferenz des GBV Schnittstellen Allgemein Patrons Account Information API (PAIA) Strategie und Planungen
MehrFEBE Die Frontend-Backend-Lösung für Excel
FEBE Die Frontend--Lösung für FEBE Die Frontend--Lösung für FEBE.pptx 8.04.206 0:43 FEBE Die Frontend--Lösung für Nutzer A alle_aufträge neuer_auftrag Auftragsänderung Nutzer B alle_aufträge neuer_auftrag
MehrMicroservices. - Integration der Benutzeroberfläche - Version: Orientation in Objects GmbH. Weinheimer Str.
Microservices - Integration der Benutzeroberfläche - Version: 18.1 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Ihr Sprecher Thorsten Maier Trainer, Berater, Entwickler
MehrAPI-Gateway bringt Ordnung in Microservices-Wildwuchs. Frank Pientka, Dortmund
API-Gateway bringt Ordnung in Microservices-Wildwuchs Frank Pientka, Dortmund Warum sind Verbindungen wichtig? 3 Agenda APIs regieren die Welt Schnittstellenprobleme Microservices und Qualitätsmerkmale
Mehr4. RADAR-WORKSHOP RADAR APPLICATION PROGRAMMING INTERFACE KARLSRUHE, 25./26. JUNI Matthias Razum, FIZ Karlsruhe
4. RADAR-WORKSHOP KARLSRUHE, 25./26. JUNI 2018 RADAR APPLICATION PROGRAMMING INTERFACE Matthias Razum, FIZ Karlsruhe APPLICATION PROGRAMMING INTERFACE POTENZIAL ANWENDUNG Application Programming Interface
MehrNoSQL mit Postgres 15. Juni 2015
Tag der Datenbanken 15. Juni 2015 Dipl.-Wirt.-Inform. Agenda l Vorstellung l Marktübersicht l Warum PostgreSQL? l Warum NoSQL? l Beispielanwendung Seite: 2 Vorstellung Dipl.-Wirt.-Inform. [1990] Erste
MehrWatson Collaborator Cognitive Training für Collaboration Solutions
Watson Collaborator Cognitive Training für Collaboration Solutions Arnd Layer Competency Leader Social Collaboration, IBM Collaboration & Talent Solutions - Cognitive Solutions Unit DACH, 2017-04-03 2
MehrAlgorithms for graph visualization
Algorithms for graph visualization Project - Orthogonal Grid Layout with Small Area W INTER SEMESTER 2013/2014 Martin No llenburg KIT Universita t des Landes Baden-Wu rttemberg und nationales Forschungszentrum
MehrSoftwaretechnik WS 16/17. Übungsblatt 01
Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and
MehrENTERPRISEY ANGULAR.JS
ENTERPRISEY ANGULAR.JS THE GOOD, THE BAD, AND THE UGLY EnterJS 2015 - Ralph Guderlei Technology Advisor @ @rguderlei ENTERPRISE APPLICATIONS? komplexe Datenmodelle (100+ Entities) komplexe Geschäftsprozesse
MehrDATENBANKEN? WO WIR HINFAHREN BRAUCHEN WIR KEINE DATENBANKEN.
DATENBANKEN? WO WIR HINFAHREN BRAUCHEN WIR KEINE DATENBANKEN. Nicolai Mainiero sidion Über mich Über mich Diplom-Informatiker. Mehr als 8 Jahre Erfahrung in der Softwareentwicklung. Seit mehr als 3 Jahren
MehrDIBELS TM. German Translations of Administration Directions
DIBELS TM German Translations of Administration Directions Note: These translations can be used with students having limited English proficiency and who would be able to understand the DIBELS tasks better
MehrCriteria API Komplexe SQL-Queries mit Eclipselink bauen 1
Criteria API Komplexe SQL-Queries mit Eclipselink bauen Criteria API Komplexe SQL-Queries mit Eclipselink bauen 1 Was erwartet Sie? Wer ist t&p? Warum die Criteria API nutzen? Wie funktionierts? Wie kann
MehrRESTful 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
MehrHochverfügbare Webanwendungen mit Apache Cassandra. msg systems ag, 26. November 2014
R8 Hochverfügbare Webanwendungen mit Apache Cassandra 1 Forschung zu Wirtschaft 2 Name R8 Name R8 3 Applikations-Framework Big-Data-Framework für besonders anspruchsvolle Kunden 4 derzeitige Architekturen
Mehr5. Programmierschnittstellen für XML
5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen
MehrVarnish + TYPO3. CH-TUG Varnish + TYPO3
Varnish + TYPO3 1 Agenda Über Varnish Varnish + TYPO3 Case Studies 2 Varnish Software AS die Firma 2005: Idee bei Verdens Gang AS Poul-Henning Kamp Redpill Linpro / Varnish Software AS BSD License 2006:
MehrSession 2. Notes Apps auf ipad & Co. Wie native Apps mit Notes synchronisieren können.
Session 2 Notes Apps auf ipad & Co Wie native Apps mit Notes synchronisieren können. Heute: Beispiele mit echtem Code, Erfahrungen aus dem echten Leben, Überlegungen zur Performance Beispiel 1: Ansicht
MehrWebApps in spezieller Umgebung
WebApps in spezieller Umgebung Neuentwicklung des dm Service-Punkts #devfestka2016 Matthias Reuter inovex GmbH @gweax Philipp Christoph FILIADATA GmbH Grafk: Polygon GmbH Alles neu?! SPAF Service-Punkt
MehrKarlsruhe Institute of Technology Die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH)
Combining Cloud and Grid with a User Interface Jie Tao Karlsruhe Institute of Technology jie.tao@kit.edu Die Kooperation von Outline Motivation The g-eclipse Project Extending gg-eclipse for a Cloud Framework
MehrLIVING BUSINESS AG. Getting Started - centrexx API ONE STEP AHEAD. Guide zum Umgang und Umfang der 3D-centrexX API in der Version 1.
Getting Started - centrexx API in der Version 1. Verantwortlich: Michael Angermaier Autor: Michael Angermaier Version: 0.1 ONE STEP AHEAD LIVING BUSINESS AG Seite 1 von 10 Inhaltsverzeichnis 1 Vorwort
MehrWeather forecast in Accra
Weather forecast in Accra Thursday Friday Saturday Sunday 30 C 31 C 29 C 28 C f = 9 5 c + 32 Temperature in Fahrenheit Temperature in Celsius 2 Converting Celsius to Fahrenheit f = 9 5 c + 32 tempc = 21
MehrREST 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 [...
MehrIUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only
IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES 2016 Software AG. All rights reserved. For internal use only DIGITAL BUSINESS APPLICATIONS DRIVE THE DIGITAL BUSINESS Partner Lieferanten Kunden SaaS
MehrNEWSLETTER. FileDirector Version 2.5 Novelties. Filing system designer. Filing system in WinClient
Filing system designer FileDirector Version 2.5 Novelties FileDirector offers an easy way to design the filing system in WinClient. The filing system provides an Explorer-like structure in WinClient. The
MehrSAP NetWeaver Gateway. Connectivity@SNAP 2013
SAP NetWeaver Gateway Connectivity@SNAP 2013 Neue Wege im Unternehmen Neue Geräte und Usererfahrungen Technische Innovationen in Unternehmen Wachsende Gemeinschaft an Entwicklern Ausdehnung der Geschäftsdaten
MehrGemeinsam mehr erreichen.
Gemeinsam mehr erreichen. Microservices, ein Vorgehensmodell zur Softwareentwicklung - Nürnberg - 17. November 2016 "Mit unserer Begeisterung für führende Technologien vernetzen wir Systeme, Prozesse und
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrDuell auf offener Straße: Wenn sich Hunde an der Leine aggressiv verhalten (Cadmos Hundebuch) (German Edition)
Duell auf offener Straße: Wenn sich Hunde an der Leine aggressiv verhalten (Cadmos Hundebuch) (German Edition) Nadine Matthews Click here if your download doesn"t start automatically Duell auf offener
Mehr!! Um!in!ADITION!ein!HTML51Werbemittel!anzulegen,!erstellen!Sie!zunächst!ein!neues! Werbemittel!des!Typs!RichMedia.!!!!!!
HTML5&Werbemittel/erstellen/ Stand:/06/2015/ UminADITIONeinHTML51Werbemittelanzulegen,erstellenSiezunächsteinneues WerbemitteldesTypsRichMedia. Hinweis:// DasinADITIONzuhinterlegende RichMedia1Werbemittelbestehtimmer
MehrREST-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