Geekstammtisch

Geekstammtisch

Das heimelige Nerdgespräch über Webentwicklung, Ruby/Rails und mehr

GST031 - CORBA in cool

Audio herunterladen: MP3 | AAC | OGG | OPUS

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