2014W CT12 Postmodern Times

Werbung
Komponententechnologien Winter 2014 Postmoderne Zeiten
REST (c) Peter Sturm, University of Trier 1 Komponententechnologien Winter 2014 Historisches •  Dissertation Roy Fielding (2000) •  Architectural Styles and the Design of Network-­‐
based Software Archiectures •  Allgegenwärtiges WWW •  Nutzung in der Anwendung „Vision“ •  Nutzung in der Anwendung •  Ressourcen •  Zustandlose Kommunikation •  Hypermedia •  Repräsentation •  Standardisierte Zugriffsmethoden (c) Peter Sturm, University of Trier 2 Komponententechnologien Winter 2014 REST •  REST = Representational State Transfer •  Verwendet der HTTP-­‐Operation –  GET (Anfrage) –  HEAD (Anfrage, Metadaten) –  POST (Create) –  PUT (Update) –  DELETE (Löschen) •  Jedes „Objekt“ hat eigene URI Ressourcen •  Eindeutige Identifikation => URI scheme:[//authority]path[?query][#fragment]
•  Beispiele Typ Beispiel Primärressource http://somewhere:4242/items/1 Subressource http://somewhere:4242/items/1/price/22 Listenressource http://somewhere:4242/items Gefilterte Ressource http://somewhere:4242/items?name=hmpf (c) Peter Sturm, University of Trier 3 Komponententechnologien Winter 2014 REST vs. WebServices Obj1 UR
L1 URL2 HTTP JSON RESTful Site Obj2 Obj4 URL4 Obj3 URL3 WSDL SOAP XSD Obj1 SOA Site Obj2 IF Obj4 Obj3 JSON •  Json als XML-­‐Ersatz (c) Peter Sturm, University of Trier 4 Komponententechnologien Winter 2014 WADL •  Web Application Description Language –  XML –  HTTP-­‐basierte Webanwendungen •  Keine Standardisierungspläne seitens W3C •  REST-­‐Äquivalent von WSDL •  REST ginge auch in WSDL Struktur (c) Peter Sturm, University of Trier 5 Komponententechnologien Winter 2014 Beispiel http://www.w3.org/Submission/wadl/ Diskussion •  REST is „verspielter“? –  Leichtgewichtigkeit –  Aktuell besonders attraktiv •  WebServices sind „reifer/ernster“? –  XML-­‐Standards sind mächtiger –  Code-­‐Generierung –  Höhere Portabilität (c) Peter Sturm, University of Trier 6 Komponententechnologien Winter 2014 Zusammenfassung Statements Klassen Komponenten Anwendungen Verteilte Anwendungen •  Anwendungskomplexität nimmt zu •  Adäquate Architekturkonzepte notwendig •  Langwieriger Lernprozeß –  Trial and Error –  Vergleiche Bau von Kathedralen •  Servicebusse werden zum „State of the Art“ Wandel beginnt beim Entwickler •  Monolithische Softwarestrukturen schwer anpaßbar –  Wrapping durch EJB geniale Idee •  Vorhandene Bausteine erhalten –  Brücken zu alten Technologien schaffen –  Zeiteffizienz zunehmend weniger wichtig •  Komponentenansätze bei neuen Softwareprojekten –  Entwickler müssen erst noch Know-­‐How aumauen –  Der alte Pfad ist immer noch der bequemste L. •  Entsprechende Kompetenzen sind sehr gefragt! (c) Peter Sturm, University of Trier 7 Komponententechnologien Winter 2014 Werkzeuge •  Techniken werden immer komplexer •  Nur mittels modernen Werkzeugen beherrschbar •  „Alte“ Paradigmen gewinnen wieder an Bedeutung –  Attributierung –  Generierung –  ... Aussichten: Heiter bis wolkig (c) Peter Sturm, University of Trier 8 Komponententechnologien Winter 2014 Trends •  Bedeutung von Clouds •  Message-­‐oriented Middleware •  RIA •  JavaScript •  Postmoderne Postmoderne Maßgebliche Ansätze der Moderne bevormunden und folgen damit einem totalitären Prinzip. Die Postmoderne stellt dieser Eindimensionalität eine Vielfalt an gleichberechtigten Perspektiven gegenüber und fordert eine prinzipielle Offenheit von Kunst und Gesellschaft. (c) Peter Sturm, University of Trier 9 Komponententechnologien Winter 2014 So? Oder besser so? (c) Peter Sturm, University of Trier 10 Komponententechnologien Winter 2014 Aspekte •  Sind wir in der Postmoderne? •  Digitale Postmoderne •  Konsequenzen Programmiersprachen (c) Peter Sturm, University of Trier 11 Komponententechnologien Winter 2014 Lieblingssprache? Tiobe (November 2012) www.tiobe.com (c) Peter Sturm, University of Trier 12 Komponententechnologien Winter 2014 Tiobe (2007-­‐02 bis 2012-­‐11) 300 250 200 150 100 50 0 C C++ Java Javascript PHP C# Python Ruby Haskell Scala Erlang -­‐50 -­‐100 www.tiobe.com Zugegeben ... •  Kleine Zahlen –  Ruby 1.739% –  Haskell 0.323% –  Scala 0.324% –  Erlang 0.339% •  Objektivität? –  Sprachkenntnisse aktiver Entwickler (c) Peter Sturm, University of Trier 13 Komponententechnologien Winter 2014 •  Drew Conway –  Vergleich Popularität GitHub und StackOverflow (c) Peter Sturm, University of Trier 14 Komponententechnologien Winter 2014 Ursachen •  Dynamic HTML –  Hohe Dynamik, Starker Innovationsdruck •  Funktionale Sprachen –  Nutzung der ManyCore-­‐Architekturen Objective C 2007/02 0.108 2012/11 10.383 0 2 4 6 8 10 12 Prozent (c) Peter Sturm, University of Trier 15 Winter 2014 Digitale Postmoderne Komponententechnologien Ewiges Leben (c) Peter Sturm, University of Trier 16 Komponententechnologien Winter 2014 Kein Aussterben! Cobol •  Platz 24 (0.471%) 19.11.2012 (c) Peter Sturm, University of Trier 17 Komponententechnologien Winter 2014 Konsequenzen Forschung •  Nischen („Digitope“) schaffen –  Virtuelle Maschinen •  Deskriptive Schnittstellen –  Generatoren (c) Peter Sturm, University of Trier 18 Komponententechnologien Winter 2014 Virtuelle Maschinen •  Erklärt hohe Popularität •  Granularität noch zu grob –  Immer komplettes OS-­‐Image –  Archivierung und Backup noch unbefriedigend •  Merge divergierender Schnappschüsse unmöglich Nicht-­‐lineare Zeit •  „Replay“ –  Zurück in der Zeit •  „Branch and Merge“ –  Git –  Commit Ranges (c) Peter Sturm, University of Trier 19 Komponententechnologien Winter 2014 Ausbildung •  Prinzipien und Modelle werden wichtiger –  Kernkompetenz der Universitäten •  Mehr Mut zur Diversifikation in der Praxis •  Spezielle Praktika und Seminare Unternehmen •  Diversität sinnvoll? –  Erhöht sich die Robustheit? •  Höhere Motivation! •  Anreize für talentierten Nachwuchs –  Zunehmend rare Ressource J (c) Peter Sturm, University of Trier 20 Komponententechnologien Winter 2014 Vorreiter •  Early Adopters –  Google Summer of Code –  Facebook Hackathon •  Attraktive Startups –  Parse, ifttt, ... •  github –  Adobe, Facebook, ... Je in
desto novative
r exot
ische
r?! Die Zukunft Salvador Dail: Gala Mirant al Mar Mediterrani (c) Peter Sturm, University of Trier 21 Komponententechnologien (c) Peter Sturm, University of Trier Winter 2014 22 Komponententechnologien Winter 2014 Browser = OS „Anwendungen“ Browser Betriebssystem Hardware Kalter Kaffee? Anwendungen Virtuelle Maschine (CLR oder JVM) Betriebssystem Hardware (c) Peter Sturm, University of Trier 23 Komponententechnologien Winter 2014 NEIN! •  Deutlich stärkere Bevormundung! •  Faktisch nur JavaScript –  siehe Schicksal „Silverlight“ •  HTTP = Transport-­‐Layer github (23.11.2014) 900000 800000 700000 600000 500000 400000 300000 200000 100000 0 (c) Peter Sturm, University of Trier Java C# C C++ Swift 24 Komponententechnologien Winter 2014 github (23.11.2014) 1200000 1000000 800000 600000 400000 200000 0 Java C# C C++ Swift JavaScript Architektur Code HTML CSS HTTP Server Browser JavaScript Ajax, REST, SOAP; ... Rendering Engine Plugin(s) GPU CPU (c) Peter Sturm, University of Trier 25 Komponententechnologien Winter 2014 W3C •  Standards weiten sich immer mehr aus •  Browser-­‐lokaler Storage •  Multi-­‐Threading –  WebWorker •  Kommunikation über TCP –  WebSockets WebGL •  OpenGL im Browser •  Engines auf WebGL –  Construct 2 –  pixi.js –  Three.js •  Browser-­‐Spiele Epic Citadel (Epic, Mozilla) (c) Peter Sturm, University of Trier 26 Komponententechnologien Winter 2014 WebCL •  Zugang zu OpenCL •  Heterogeneous Parallel Computing –  ManyCore –  GPU •  Vorzugsweise SIMD WebRTC •  Real Time Communication •  Audio, Video, beliebige Daten •  JavaScript APIs –  MediaStream –  RTCPeerConnection •  Signal Processing, Codec, Communication, Security, Control bandwidth –  RTCDataChannel •  WebSocket API, Geringe Latenz, Unreliable/Reliable, Security (c) Peter Sturm, University of Trier 27 Komponententechnologien Winter 2014 Ausblick Grund zur Panik? (c) Peter Sturm, University of Trier 28 Komponententechnologien (c) Peter Sturm, University of Trier Winter 2014 29 Komponententechnologien Winter 2014 ... ABER •  Java, C# und C++ •  Trend Multiparadigm –  Statische Typsysteme / Compile –  Dynamische Auflösung zur Laufzeit (c) Peter Sturm, University of Trier 30 Komponententechnologien Winter 2014 Der ganze Rest JavaScript Nächste große Welle (c) Peter Sturm, University of Trier 31 Komponententechnologien Winter 2014 Nächste grosse Ding •  Grenze Compiler-­‐Interpreter verschwimmt •  Herausstellungsmerkmal Apple Swift •  Project Roslyn (C# 6.0) DOM HTML JavaScript Browser (c) Peter Sturm, University of Trier 32 Komponententechnologien Winter 2014 Syntaxbaum / Metainformation Statisch Compiler Dynamisch Interpreter Anwendung (c) Peter Sturm, University of Trier 33 Komponententechnologien Winter 2014 Referenzen •  REST: Die Folien von Fabian Girgert aus seinem Seminarvortrag „REST und das Web der Dinge“ standen Pate (c) Peter Sturm, University of Trier 34 
Herunterladen