GST031 - CORBA in cool
Unser Gast (00:00:00)
- Stefan Tilkov, @stilkov, http://www.innoq.com/blog/st/about/
- REST und HTTP: Einsatz der Architektur des Web für Integrationsszenarien, Stefan Tilkov: http://rest-http.info
- Macht zum Teil Management und sonst wozu er so Lust hat: Workshops, Konferenzen, Schulungen, …
- Hat C, C++, Java und und und gemacht, sein aktueller Favorit ist allerdings: Clojure
Architektur im Wandel (00:02:45)
- "architect" is Latin for "cannot code anymore.", Ted Neward: http://msdn.microsoft.com/en-us/library/aa905335.aspx
- "Architektur ist die Menge der wichtigen Entscheidungen", Stefan Tilkov :)
- Anwendungsarchitektur Anfang der 2000er
- Irgendwann wurde der Begriff "Architektur" negativ belegt
Projekte bei innoQ (00:05:10)
- 60 Leute bei innoQ
- 20% strategische Beratung
- 80% Entwicklungsprojekt, teilweise nur mitarbeiten, teilweise komplett selber verantwortet
- bei innoQ werden immer wieder die Rollen/Aufgaben und Projekte gewechselt
Architektur: negativ? (00:08:40)
- Agile Is Dead (Long Live Agility), Dave Thomas: http://pragdave.me/blog/2014/03/04/time-to-kill-agile/
- Rollen (z.B. "der Architekt") ergeben sich oft automatisch, ohne dass es vorgegeben ist
- Architektur negativ? "Ist wie ich darf nicht mehr nachdenken!"
REST (00:12:05)
- REST: https://en.wikipedia.org/wiki/Representationalstatetransfer
- Representational State Transfer (REST), Roy Fielding, Dissertation (2000), Kapitel 5: https://www.ics.uci.edu/~fielding/pubs/dissertation/restarchstyle.htm
- Roy Fieldings Blog: http://roy.gbiv.com/untangled/
- REST war eigentlich vor der SOAP/WS-* Welle da
- Ressourcen haben eine URI und sind damit identifizierbar
- Standard-Interface um mit Ressourcen zu interagieren: GET, PUT, POST, DELETE
- Hypermedia: https://en.wikipedia.org/wiki/Hypermedia
- REST Maturity Models (RMM): http://martinfowler.com/articles/richardsonMaturityModel.html
Der WS-Weg (00:16:55)
- Leute müssen für Webservices oft missioniert werden; bei REST ist das deutlich einfacher
- Bei Web Serivces entwirft man permanent neue Protokolle (mit SOAP)
- WSDL: http://www.w3.org/TR/wsdl
- Enterprise Service Bus: https://en.wikipedia.org/wiki/Enterpriseservicebus
Microservices vs SOA? (00:22:05)
- James Lewis, Martin Fowler über Microservices: http://martinfowler.com/articles/microservices.html
- Jim Webber "Guerilla SOA": http://www.infoq.com/presentations/webber-guerilla-soa
Hypermedia Explained (00:23:53)
- Hypermedia: https://en.wikipedia.org/wiki/Hypermedia
- Heute sind REST APIs relativ gut (kein GET mehr, um eine Ressource zu löschen)
- URI Templating, http://whatisrest.com/restservicecontracts/uritemplatesandresourcequeries
- REST APIs haben eine Startseite, von wo aus der Clients den Links folgen kann
- Der API Client braucht nicht so festverdrahtet sein
- Links für Ressourcen signalisieren dem Client, wie er mit einer Ressource interagieren kann
- Architekturstile (https://de.wikipedia.org/wiki/Architekturstil) haben immer Tradeoffs!
- Apache Thrift: https://en.wikipedia.org/wiki/Apache_Thrift
- CORBA: https://en.wikipedia.org/wiki/CommonObjectRequestBrokerArchitecture
- URI Templates sind ein Rezept, um z.B. eine große Menge von Links abzubilden
- HTML ist ein schönes Beispiel: Mit einem Formular und GET
- HTML ist ein Hypermedia Format!
- Ein Browser ist quasi ein Hypermedia Client
- REST sollte Standardformate, selbstbeschreibender Nachrichten verwenden
- IANA Media Types: https://www.iana.org/assignments/media-types/media-types.xhtml
- Populäre Formate: JSON, XML
- JSON Schema: http://json-schema.org/
- JSON & Hypermedia
- Collection+JSON: http://amundsen.com/media-types/collection/
- Hypertext Application Language: http://stateless.co/hal_specification.html
- Siren: https://github.com/kevinswiber/siren
- Jon Moore, "Building Hypermedia APIs with HTML": http://www.infoq.com/presentations/web-api-html
- AtomPub, The Atom Publishing Protocol: http://bitworking.org/projects/atom/rfc5023.html
REST für das Web (00:45:00)
- REST ist die Architektur des Webs und nicht nur von Web Services
- ROCA: Resource-oriented Client Architecture: http://roca-style.org
- Single Page Application Frameworks: http://emberjs.com, http://angularjs.org, http://backbonejs.org, ...
- Yehuda Katz: http://yehudakatz.com/
- JSON API: http://jsonapi.org/
- ROCA: Server-seitiges HTML, App Logik nur im Server, Seite funktioniert ohne JavaScript, JavaScript erweitert nur, Progressive Enhancement (https://en.wikipedia.org/wiki/Progressive_enhancement), ...
- History API: http://diveintohtml5.info/history.html
- SEO & Single Page Apps: http://backbonetutorials.com/seo-for-single-page-apps/
- iTunes im Browser? o_O z.B. mit https://vaadin.com/home
- Monolithen aufbrechen; die einzelnen Teile sollten auch ein eigenes UI haben
- Breaking the monolith: Towards a system-of-systems architecture: http://vimeo.com/74354372
- jQuery UI: https://jqueryui.com/
- ember.js und AngularJS bieten Konventionen und vermeiden Diskussionen (meint Basti)
- Web Framework Ansatz: "Wir nehmen entweder JSF oder Grails oder JRuby oder Angular oder jQuery"
- Architektur sollte unabhängig sein von der Implementierung
- Bower: http://bower.io/
- "build for replacement, not for reuse"
- The Twelve-Factor App: http://12factor.net/
Web Services, REST (01:11:30)
- innoQ macht auch Projekte im klassischen Web Service Kontext
- Web Service Metadaten mit RESTful HTTP managen
- UDDI: https://en.wikipedia.org/wiki/UniversalDescriptionDiscoveryandIntegration
- WSDL: https://en.wikipedia.org/wiki/WebServicesDescription_Language
- WS-MetadataExchange: https://en.wikipedia.org/wiki/WS-MetadataExchange
Ausblick (01:17:20)
- Alte Ideen tauchen in neuen Konzepten wieder auf; verschiedene Gruppe lernen von einander
- JAXconf: http://jaxconf.com/
- innoQ Timeline: http://www.innoq.com/de/timeline/
- innoQ Podcast: http://www.innoq.com/de/timeline/?type=podcast_episodes
Kommentare
Neuer Kommentar