Das Web als Plattform

Nachhaltige Entwicklung und Integration mit Web-Technologien

Das World Wide Web ist mit Abstand das größte verteilte IT-System, das die Menschheit bisher erschaffen hat – und ein absolutes Musterbeispiel an Skalierbarkeit, Ausfallsicherheit und Fehlertoleranz. Die Prinzipien des Web sind ebenso einfach wie effektiv, die Technologien robust und vielfach bewährt.

Damit Sie diese Prinzipien für Ihre eigene IT nutzen können, helfen wir Ihnen mit Architekturberatung, Schulungen und ganz praktisch durch Unterstützung bei der Entwicklung. Wir realisieren Web-Anwendungen, die gezielt das Web und seine Möglichkeiten nutzen – egal, ob für SaaS-Angebote mit Millionen von Nutzern oder klassische Inhouse-Anwendungen. Dazu kombinieren wir unsere Kenntnisse modernster Web-Technologien und eine pragmatische Vorgehensweise mit unserer langjährigen Erfahrung aus der komplexen Systementwicklung und -integration in Großunternehmen.

  • Web Applications in Clojure

    Vortrag Joy Clark Clojure Meetup Munich Februar 2017 Folien verfügbar

    Clojure, as a Lisp dialect running on the JVM, is a purely functional language that also takes advantage of the great library support available in the Java world.

    As a functional language, it provides great abstractions for developing web applications, particularly because of how it handles HTTP, which is a fundamentally stateless protocol. In this talk, I will explain the fundamental concepts behind Clojure web applications and how the Clojure libraries harness the power of the existing Java infrastructure in order to provide state of the art server technology.

    Mehr lesen
  • Clojure-Web-Applikationen für Beginner

    Vortrag Michael Vitz OOP 2017 Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen, wie man hiermit Web-Anwendungen umsetzen kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen, werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Zielpublikum: Entwickler Voraussetzungen: Grundlagen der funktionalen Programmierung und Webentwicklung Schwierigkeitsgrad: Anfänger

    Mehr lesen
  • UI Engineering Podcast, S01E06, Interview mit Falk Hoppe

    Link Falk Hoppe

    Falk Hoppe war zu Gast bei UI Engineering Podcast. Er unterhält sich mit den beiden Gastgebern des Podcasts, Jan Persiel und Dennis Reimann, über Styleguides und Pattern Libraries sowie verschiedene Tools und deren Einsatz.

  • The perils of shared code

    Blog-Post Daniel Westheide

    In this blog article, I want to examine why using a sharing code between microservices may sound attractive in the first place and why it can cause bigger problems than the ones you try to solve.

    Mehr lesen

    Progressive Web Components

    Vortrag Stefan Tilkov, Frederik Dohr GOTO Berlin 2016

    Every now and then the dawn of a new web standard paves the way for a shiny new generation of web technology. Web components are right around the corner, and their impact on the way we develop applications on the web will be huge. They will finally enable a well-defined, common way to develop self-contained, reusable and interoperable front-end components. But can this piece of technology live up to the fundamental philosophies of the web? Can web components be used to progressively enhance the core functionality of web applications? This talk will try to answer these questions and provide some advice on how to use web components safely and responsibly now and in the future.

    Mehr lesen
  • ROCA: Why you shouldn’t build Web UIs the way you do

    Vortrag Stefan Tilkov Devoxx 2016

    Many people who build web UIs go about it the wrong way without knowing about it – and popular frameworks don’t help.

    In this session, we’ll take a look at the architectural patterns that form the foundation of what makes the browser unique, explore how a developer can use them to build better web UIs using the framework-less style known as ROCA – and see how relying on less fancy tooling can lead to user experiences that are actually vastly superior in many ways.

    Mehr lesen
  • Clojure Web-Application 101

    Vortrag Michael Vitz Devoxx 2016 Folien verfügbar

    Clojure is a JVM language which makes the impossible come true: a pragmatic and usable Lisp for humans. Besides an short introduction to the language this talk introduces how to develop Web-Applications in Clojure.

    If you aren’t afraid of parenthesis you will quickly understand why a functional language like Clojure is a perfect choice for implementing Web-Applications and that it fits the stateless HTTP approach very nicely.

    The video recording of this talk can be found at https://www.youtube.com/watch?v=3Xm_nVqxowk

    Mehr lesen
  • Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark, Simon Kölsch Düsseldorf Clojure Meetup Oktober 2016 Folien verfügbar

    In diesem Vortrag praesentieren wir Clojure als eine mögliche Sprache um mit wenig Aufwand sichere Webapplikationen zu bauen. Wir zeigen dabei mit welchen Features gängige Frameworks verschiedene Angriffe verhindern und zeigen, dass “Security” ein grundlegender Teil der Architektur sein muss.

    Wir leben in einer Welt in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmässig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    Mehr lesen
  • Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark CommitterConf 2016 Folien verfügbar

    Wir leben in einer Welt, in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmäßig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    In diesem Vortrag präsentiere ich Clojure als eine mögliche Sprache, um mit wenig Aufwand sichere Webapplikationen zu bauen. Ich zeige dabei, mit welchen Features gängige Frameworks die verschiedenen Angriffe verhindern und dass “Security” ein grundlegender Teil der Architektur sein muss.

    Mehr lesen
  • Content Security Policy

    Blog-Post Simon Kölsch

    Cross-Site-Scripting ist seit Jahren eines der Security Probleme im Web. Neben anderen sicherheitsrelevanten HTTP-Headern gibt es seit geraumer Zeit auch die Möglichkeit, dem Browser eine “Content Security Policy” mitzuteilen. Dieser Blogpost erklärt deren Zweck und Einsatz.

    Mehr lesen
  • Cloud Native Architectures an einem Beispiel

    Vortrag Phillip Ghadir Software Architecture Summit 2016

    Wenn wir Systeme für die Cloud bauen, stehen verschiedenste Infrastruktur- und Plattformdienste zur Verfügung. Die Optionen reichen von der einfachen Nutzung virtueller Maschinen bis hin zum Aufbau beliebig komplexer Datenverarbeitungslogik – ganz ohne (eigene) Server. Cloud-Anbieter erlauben uns, Services auf Knopfdruck zu abonnieren. Neue virtuelle Maschinen, Repositories, Datenbanken, Message-Queues und Event-Hooks sind nur wenige Mausklicks oder Cloud-API-Aufrufe entfernt.

    Dieser Workshop stellt verschiedene Architektur-Alternativen und unterschiedliche Cloud-Services an einem konkreten Beispiel vor und verknüpft dies mit den Themen aus den vergangenen Summits: der Kopplung von Self-Contained Systems & Microservices über Web-APIs und der Integration per Reactive Extensions.

    Mehr lesen
  • Fortgeschrittene REST-Architektur

    Vortrag Holger Kraus, Silvia Schreier Software Architecture Summit 2016

    REST als der Architekturstil des Webs ist mittlerweile keine Neuigkeit mehr, sondern in den meisten Fällen die bevorzugte Alternative für die Umsetzung von Web Services. Die Diskussion darüber hat sich mittlerweile von Einsteigerthemen und Rechtfertigungen weg und zu fortgeschrittenen Fragestellungen hin entwickelt.

    In diesem Workshop diskutieren Holger Kraus und Silvia Schreier mit den Teilnehmern fortgeschrittene Aspekte jenseits der Grundlagen. Zu den Themen gehören Versionierung, Dokumentation, Hypermedia, die Entwicklung von Clients, Teststrategien und vieles mehr. Dabei werden sowohl theoretische Architekturaspekte wie auch praktische Werkzeuge behandelt. Die Teilnehmer bekommen die Gelegenheit, alle Fragen zu stellen, zu denen sie noch nie befriedigende Antworten bekommen haben.

    Mehr lesen
  • Web Components mit Polymer

    Artikel Ruben Wagner, Simon Jost

    Wie im ersten Teil dieses Artikels bereits angekündigt wurde, beschäftigt sich dieser zweite Teil mit der technischen Anwendung von Polymer 1.0. Wo der erste Teil die Spezifikation und den Einsatz der Technologie aus einer Vogel-Perspektive zeigt, werden wir hier die konkreten APIs vorstellen.

    Mehr lesen
  • Clojure Web-Applikationen für Beginner

    Vortrag Michael Vitz Berlin Expert Days – BED-Con Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen, wie man hiermit Web-Anwendungen umsetzten kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen, werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Mehr lesen
  • Nachhaltige Webarchitekturen

    Artikel Silvia Schreier

    Heutzutage gewinnt man leicht den Eindruck, dass es für moderne Webanwendungen nur einen einzig wahren Architekturansatz gibt: REST und Single-Page-Anwendungen (SPAs). Doch ist alles, was REST genannt wird, wirklich REST? Sind REST und SPAs immer die beste Lösung? Um diese Fragen beantworten zu können, sollte man sich anschauen, was REST eigentlich ist, wofür es gedacht ist und ob es möglicherweise auch Alternativen zu SPAs gibt; insbesondere mit dem Blick auf Nachhaltigkeit, also Wartbarkeit und Erweiterbarkeit.

    Mehr lesen
  • Sichere Webanwendungen mit Clojure

    Vortrag Joy Clark, Simon Kölsch FrOSCon 2016 Folien verfügbar

    Wir leben in einer Welt, in der das Web unseren Alltag durchdrungen hat. Die Frage nach Sicherheit wird dabei immer größer und ist schon lange ein Thema bei Endnutzern. Hacker können mit XSS, CSRF, DoS oder Injection-Attacken meine Applikation angreifen. Muss ich mich als Entwickler wirklich noch selbst um das Verhindern von solchen Angriffen kümmern? Regelmässig tauchen immer wieder neue Schwachstellen auf, deshalb ist es wichtig, bei der Auswahl von Frameworks und Libraries auch auf Features im Bezug auf Security zu achten. Dazu kommt der Umgang mit Authentifizierung und Rollen/Rechte-Konzepten.

    In diesem Vortrag präsentieren wir Clojure als eine mögliche Sprache, um mit wenig Aufwand sichere Webapplikationen zu bauen. Wir zeigen dabei, mit welchen Features gängige Frameworks verschiedene Angriffe verhindern und zeigen, dass “Security” ein grundlegender Teil der Architektur sein muss.

    Sehen Sie das Video auf ccc-tv

    Mehr lesen
  • ROCA vs. SPA

    Blog-Post Lucas Dohmen, Marc Jansing

    Currently, a lot of companies are migrating from Desktop applications (mostly written in Java) to Web applications for their products as well as for their internal tooling. When they start with this process they often ask themselves: Which technologies should we use to build our Web application? Should we use Angular.js or React? Or should we go with recommendations like ROCA instead of a Single Page Application?

    Mehr lesen
  • Web Components mit Polymer

    Artikel Martin Schmidt, Christopher Schmidt

    Die vom W3C standardisierten Web Components erleichtern die komponentenbasierte Entwicklung von Benutzungsoberflächen für Webanwendungen. 2013 hat Google die Open-Source-Bibliothek Polymer initiiert, die Entwicklern beim Einsatz von Web Components Unterstützung an die Hand gibt. Mit der Vorstellung von Version 1.0 dieses Frameworks stellt sich die Frage, ob Polymer nun produktionsreif ist und in realen Projekte eingesetzt werden kann. Im ersten Teil der Serie stellen wir die Version 1.x vor und prüfen die Möglichkeit der Nutzung für Geschäftsanwendungen.

    Mehr lesen
  • Solving the wrong problems

    Blog-Post Daniel Westheide

    Instead of rushing to an engineering solution to a problem, we would often be better off by lying back and determining the root cause of our engineering problem, which is often an architectural one.

    Mehr lesen
  • The Web Ahead, Episode 116: Preserving the Architecture of the Web with Stefan Tilkov

    Audio Stefan Tilkov thewebahead.net

    Stefan Tilkov joins Jen Simmons of “Web Ahead” podcast to talk about the architectural style of the web, and how to understand to best create an application on the web.

  • Video-Interview mit Stefan Tilkov

    Link Stefan Tilkov

    Beim Software Architecture Summit im März 2016 wurde Stefan Tilkov unter anderem zum Thema „Fortgeschrittene REST-Architekturen“ interviewt. Im Gespräch geht es um die Umsetzung dieses Architekturstils in der Praxis, Fortbildung für Softwarearchitekten und mehr.

  • Transclusion in self-contained systems

    Blog-Post Till Schulte-Coerne

    Frontend integration in the web is a huge topic. This post deals with the aspect of transclusion of other systems’ content in the DOM of a web page.

    Mehr lesen
  • Transklusion in Self-Contained Systems

    Blog-Post Till Schulte-Coerne

    Frontend-Integration im Web ist ein riesiges Themengebiet. Dieser Post befasst sich mit dem Teilaspekt der Transklusion “fremder” Inhalte in den DOM einer anderen Seite.

    Mehr lesen
  • Why RESTful communication between microservices can be perfectly fine

    Blog-Post Daniel Westheide

    Recent debates about REST versus message passing in microservice communication have led to some confusion. What is meant with asynchronous communication in this context and why is REST a perfectly valid choice?

    Mehr lesen
  • Embrace the Browser, Architect’s Edition

    Vortrag Stefan Tilkov EnhanceConf 2016 Folien verfügbar

    Progressive enhancement is a technique mostly known to, and practiced by, front-end developers and designers. In many large projects, the most important decisions (a.k.a. “architecture”) are made by backend architects, who couldn’t care less about frontend “details”. But they should! In this talk, I’ll try to explore some reasons how adopting the architecture of the web in general, and the capabilities of the browser in particular, improves the overall architecture.

    Mehr lesen
  • Clojure-Web-Applikationen für Beginner

    Vortrag Michael Vitz BOB Conference 2016 Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp.

    Neben den Grundlagen von Clojure werden Sie in dieser Session auch lernen wie man hiermit Web-Anwendungen umsetzten kann. Wenn Sie sich hierbei nicht von den Lisp-typischen Klammern abschrecken lassen werden Sie schnell sehen, dass der Einsatz einer rein funktionalen Programmiersprache sehr gut zum statuslosen Ansatz von HTTP passt.

    Sehen Sie das Video auf Youtube!

    Mehr lesen
  • Kriterien zur Bewertung von ROCA Komponenten

    Blog-Post Till Schulte-Coerne

    Mal angenommen, jemand wollte ROCA machen. Wie müssten dann JavaScript-Komponenten aussehen, die zu diesem Zweck benutzbar wären?

    Mehr lesen
  • JAX TV: Technologie-Trends jenseits von Java

    Link Eberhard Wolff

    Was gibt es sonst noch so, außer Java? Mit dieser Frage haben sich auf der JAX 2015 fünf Experten intensiv auseinandergesetzt. Von Rich Clients über Web UI bis hin zu Frameworks und Nischensprachen haben Eberhard Wolff, Kai Tödter, Oliver Gierke, Peter Roßbach und Uwe Friedrichsen den Besuchern wichtige Einblicke in die Vergangenheit, Gegenwart und Zukunft der IT-Welt gewährt.

    JAX TV: Das Minimum, das ein Webentwickler über Security wissen sollte

    Link Christoph Iserlohn

    Fast im Wochenrhythmus erfahren wir, wie wieder mal ein Webdienst gehackt und Millionen von Datensätzen abgegriffen wurden. Erschreckenderweise benutzen diese Hacks oft immer noch erfolgreich Angriffe, gegen die es längst bekannte und einfach zu implementierende Gegenmaßnahmen gibt. Erfahren Sie in dieser Session von Christoph Iserlohn (innoQ) alles Wichtige über typische Angriffe wie CSRF, Session-Hijacking oder SQL Injection. Lernen Sie, welche Gegenmaßnahmen es gibt, und welche Frameworks, Bibliotheken und Tools Sie bei der Implementierung unterstützen können.

  • AngularJS FTW?

    Vortrag Sebastian Janzen, Roman Stranghöner Devoxx Belgium 2015

    Imagine, you’re a developer in a big company. Imagine, your boss gave you the technical leadership of the next web project and the freedom to choose whatever technology you want. “Great! Thats my chance to finally do something with AngularJS”. But does Angular fit your needs? Does it make sense? Is it the grail you always looked forward to? Lets see some examples, hear some stories and learn why the answer is no.

    Mehr lesen
  • Integration von Microservices – REST vs. Messaging

    Vortrag Eberhard Wolff, Oliver Gierke W-JAX 2015 Folien verfügbar

    Der Trend zu Microservices stellt Entwickler vor neue Herausforderungen. Systeme, die an fachlichen Kontexten orientiert sind, müssen sich gegenseitig über Ereignisse benachrichtigen und auf sie reagieren. Ebenso muss das Austauschen und Synchronisieren von Datenbeständen umgesetzt werden. Die Wahl eines Kommunikationsmechanismus ist dabei fundamental. Sie beeinflusst die gesamte Architektur und ist nur schwer nachträglich änderbar.

    Der Vortrag stellt die Herausforderung bei der Integration dar und Konsequenzen und Effekte des Einsatzes von REST und Messaging gegenüber.

    Mehr lesen
  • Die Unbenutzbarkeit von Enterprise-Web-Anwendungen — Naturgesetz oder Vorsatz?

    Vortrag Robert Glaser, Roman Stranghöner W-JAX 2015 Folien verfügbar

    Seien wir doch mal ehrlich: Unternehmensanwendungen im Web werden meistens von wahren Backend-Entwicklern gebaut. Das schließt die Bedienoberflächen in der Regel mit ein. Benutzerfreundlichkeit und Ästhetik haben dabei im Gegensatz zur Produktentwicklung oftmals nur einen sehr geringen bis gar keinen Stellenwert.

    Wir behaupten: das muss nicht so sein. In diesem Vortrag geben wir praktische Empfehlungen und zeigen Herangehensweisen, mit denen Informatiker Bedienbarkeit und Nutzerakzeptanz von Weboberflächen wesentlich verbessern können.

    Mehr lesen

    REST 2015

    Vortrag Silvia Schreier W-JAX 2015 Folien verfügbar

    REST-konforme Anwendungen sind »state of the art«. Allerdings wird der zentrale »Hypermedia as the engine of application state«-Aspekt zur Zeit noch als die neue Entdeckung schlechthin gehandelt, auch wenn er das eigentlich gar nicht ist. Oft stellt sich dann die Fragen: Wie baut man denn nun solche „Hypermedia-Services“? Was muss ich dazu wissen?

    In dieser Session werden diese Fragen beantwortet und außerdem gezeigt was man im Jahr 2015 sonst noch rund ums Thema REST wissen sollte. Dazu gehören neben HTTP/2, OAuth2 und OpenID Connect auch Themen wie Dokumentation, Versionierung sowie Resource-oriented Client Architecture (ROCA).

    Sehen Sie das Video auf Vimeo!

    Mehr lesen
  • Play 2.4 with Guice and MyBatis

    Blog-Post Timo Loist

    The Play Framework is getting more popular and Version 2.4 finally includes Dependency Injection as the default mechanism to access central resources instead of singletons.

    This blog post explores what is necessary to combine MyBatis with Play using its default DI Framework: Guice.

    Batteries (code sample) included!

    Mehr lesen
  • Praktikumsbericht „Web Discoverable Hypermedia“

    Blog-Post Valentin Pratz

    Nachfolgend ein Erfahrungsbericht von Valentin Pratz (15), der mit Bravour ein zweiwöchiges Schülerpraktikum bei innoQ absolviert hat.

    Mehr lesen
  • Gebaut für die Cloud - Cloud-Native Architectures

    Vortrag Phillip Ghadir Software Architecture Summit 2015

    Ein beliebig skalierbares System erfordert tendenziell eine beliebig große Infrastruktur – sowohl software- als auch hardwareseitig. Eine solche Infrastruktur lässt sich nur automatisiert beherrschen. Ihre schiere Größe lässt sich durch die Definition geeigneter – teils sehr einfacher, teils sehr komplexer – Dienste verbergen. Die Amazon WebServices bieten unterschiedlichste Dienste an, mit denen sich heute Systeme softwareseitig anders schneiden lassen als noch vor einigen Jahren. Features, die zuvor selbst entwickelt oder im Betrieb sichergestellt werden mussten, werden heute durch die Amazon Cloud angeboten. Von EC2 Container Services zum Hosten von Applikationen, die aus Docker-Containern bestehen, über die zu Grunde liegenden EC2 sowie neueren Services wie AWS-Lambda - die verfügbare Infrastruktur verschiebt die Aufgaben für das Entwickeln und Betreiben Cloud-nativer Systeme.

    Dieser Workshop zeigt die Möglichkeiten, die sich durch Infrastruktur-Dienste der Amazon WebServices bieten und geht darauf ein, wie ein Software-System strukturiert werden könnte, um AWS sinnvoll zu nutzen.

    Mehr lesen
  • RESTful Hypermedia-Services auf der JVM

    Vortrag Michael Vitz Berlin Expert Days 2015 Folien verfügbar

    REST und Hypermedia APIs sind auch 2015 in aller Munde. Dabei gilt es eigentlich immer wieder die gleichen Prinzipien zu berücksichtigen. Hierzu zählen vor allem der richtige Einsatz von HTTP Status Codes, korrekte Content Negotiation und Caching.

    In dieser Session wollen wir die Grundlagen besprechen und diese an praxisnahen Beispielen vertiefen. Hierzu setzen wir mit “liberator” auf eine Clojure Bibliothek, die sich nah an der HTTP Spezifikation befindet und den Entwickler somit optimal unterstützt seine Anwendungsdaten RESTful und HTTP konform als Resourcen anzubieten. Trotz der niedrigen Versionsnummer ist “liberator” auch für nicht Clojuristen einen Blick wert, basiert es doch auf den erprobten Konzepten der Erlang “Webmachine”-Implementierung.

    Mehr lesen
  • Hands-On Migration from Grails 2 to 3

    Vortrag Michael Plöd SpringOne 2GX 2015

    In this presentation we will migrate an existing application that is productive (http://www.allschools.de) and running with Grails 2 towards the newest version of Grails 3. This presentation will feature 3 slides and tons of code. You will learn which steps have to be taken and which gotchas you have to be aware of in order to make the migration to Grails 3 as smooth as possible.

    Mehr lesen
  • ECSA 2015 - Neue Notation für REST-konforme APIs vorgestellt

    News

    Vom 7. bis 11. September fand die diesjährige European Conference on Software Architecture in Kroatien statt. Mehr lesen
  • Vier Fragen, die Sie sich bei jedem Webprojekt stellen sollten

    Link Silvia Schreier

    Silvia Schreier erläutert auf JAXenter an Hand von vier Fragen, welche typischen Herausforderungen einem bei der Entwicklung eines zeitgemäßen Webprojektes begegnen.

    Mehr zu diesen Themen gibt es außerdem bei ihrem Vortrag auf der W-JAX zu „REST 2015“.

  • REST und HTTP

    Podcast Silvia Schreier, Oliver Wolf, Martin Eigenbrodt, Stefan Tilkov

    In dieser Folge spricht Stefan Tilkov mit seinen neuen Co-Autoren Martin Eigenbrodt, Silvia Schreier und Oliver Wolf anlässlich der kürzlich erschienenen dritten Auflage von „REST und HTTP“ über die Grundlagen von REST und Hypermedia und die Frage, wie man gute Web-Anwendungen baut. Mehr lesen
  • Neue Trainingstermine im Herbst: Microservices-Praxis-Workshop und Skalierbare Webarchitekturen

    News

    Für den Herbst bieten wir Ihnen zwei neue Trainingstermine für Software-Architekten an. In beiden Trainings geht es nicht einfach um Theorie, sondern vor allem um praxisrelevante Themen und deren tatsächlichen Einsatz in Ihrem Arbeitsalltag. Mehr lesen

    Microservices: Smaller Is Better?

    Video Eberhard Wolff

    In this talk from the microXchg conference 2015, Eberhard Wolff discusses the benefits of microservices and some of the advantages of creating smaller services instead of larger ones.

  • Reliable Web Clients

    Blog-Post Tobias Neef

    Microservices can make teams and systems more independent but also more vulnerable to the fallacies of distributed systems. Initially I thought this blog post is going to be about how to build reliable web clients with Akka and Akka Persistence. While this is an interesting topic by itself, I now think it is more crucial to first understand the underlying problems and trade-offs before we learn how to get around them.

    Mehr lesen
  • Bessere Web-Apps mit HTML5-APIs

    Artikel Phillip Ghadir, Simon Kölsch

    Der Begriff HTML5 fasst eine bunte Sammlung aus verfügbaren und geplanten APIs zusammen, auf die im Browser von JavaScript aus zugegriffen werden kann. Einige dieser APIs ermöglichen heute, Anwendungen für den Browser zu realisieren, die vor wenigen Jahren noch Plugins erfordert hätten. Die prominentesten Vertreter sind sicherlich Video oder WebRTC. Zum Beispiel ist heute die Public-Key-Verschlüsselung bereits im Web-Client integrierbar oder das Reagieren auf Sensordaten der Betriebs-Hardware des Browsers möglich. Es folgt eine persönliche Auswahl an etablierten APIs und ein Ausblick auf einige noch recht frische.

    Mehr lesen
  • Declarative HTTP API Testing with gabbi

    Blog-Post Frederik Dohr

    While HTTP APIs are ubiquitous these days, testing and documenting such APIs remains somewhat awkward: Tests usually consist of procedural code that is specific to the respective language or even framework - which is neither very expressive nor easy to maintain.

    Mehr lesen
  • Artenvielfalt

    Artikel Christine Koppelt, Stefan Kirsch

    Durch Node.js hält das vielerorts als nur unzulängliche Programmiersprache belächelte JavaScript heute Einzug in die professionelle Serverprogrammierung. Doch welche Möglichkeiten die Plattform bietet und welche Entscheidungen bei ihrem Einsatz zu treffen sind, ist nicht immer einfach zu ermitteln.

    Mehr lesen
  • Progressive Enhancement

    Vortrag Roman Stranghöner MediterráneaJS Folien verfügbar

    The web is constantly growing. In terms of underlying technologies, variety of connected devices and last but not least its worldwide users. This growth is a real challenge when it comes to developing modern web applications. Common requirements in these projects are: Establish a codebase that is maintainable, modular and reusable; keep up with new technologies and standards; and deliver new features to a maximum of users without breaking the whole application.

    This talk points out that these conflicting goals can actually be fulfilled with the help of progressive enhancement – a founding principle of the web in which base technologies like HTML, CSS and JavaScript are safely layered on top of each other. The given examples help to understand how this principle works in practice and show how to build robust but interactive and future-friendly web applications.

    Mehr lesen
  • JavaScript meets Cryptography - Einführung in die WebCrypto API

    Vortrag Christoph Iserlohn, Simon Kölsch enterJS

    Der Browser ist in den letzten Jahren zur einer der wichtigsten Laufzeitumgebungen geworden. Mit ihm ist JavaScript zur Lingua franca des Webs aufgestiegen. Durch die mit HTML5, CSS3 und APIs wie Webaudio, WebGL oder IndexedDB entstandenen Möglichkeiten sind nun Applikationen realisierbar, die bis vor Kurzem nur mit Flash oder als native Applikation denkbar waren. Die vom W3C spezifizierte Web Cryptography API schließt in Zukunft eine weitere Lücke und verkürzt den Abstand zu nativen Plattformen weiter: sichere Kryptographie mit JavaScript.

    Der Vortrag zeigt auf, wann und warum die API benötigt wird, welche Grundfunktionen sie zur Verfügung stellt und wie man diese benutzt.

    Mehr lesen
  • Apache Cassandra

    Artikel Marc Jansing, Phillip Ghadir

    In dieser Kolumne stellen wir Cassandra vor und zeigen, warum die Datenbank quasi beliebig skaliert und höchst performant ist. Cassandra wirkt für Kenner von relationalen Datenbanken auf den ersten Blick recht vertraut, weil hier auch von Tabellen und Spalten die Rede ist und die Abfragen einfachen SQL-Abfragen ähnlich sehen. Dennoch unterscheidet sich Cassandra konzeptionell von relationalen Datenbank-Management-Systemen (RDBMS).

    Mehr lesen
  • Das Minimum, das ein Webentwickler über Security wissen sollte

    Vortrag Christoph Iserlohn JAX 2015 Folien verfügbar

    Fast im Wochenrhythmus erfahren wir, wie wieder mal ein Webdienst gehackt und Millionen von Datensätzen abgegriffen wurden. Erschreckenderweise benutzen diese Hacks oft immer noch erfolgreich Angriffe, gegen die es längst bekannte und einfach zu implementierende Gegenmaßnahmen gibt. Erfahren Sie in dieser Session alles Wichtige über typische Angriffe wie CSRF, Session-Hijacking oder SQL Injection. Lernen Sie, welche Gegenmaßnahmen es gibt, und welche Frameworks, Bibliotheken und Tools Sie bei der Implementierung unterstützen können.

    Mehr lesen

    Raus aus dem Featuredschungel – Webarchitekturoption statt Framework

    Vortrag Robert Glaser, Till Schulte-Coerne JAX 2015

    Komponenten? Templates? View Models? RESTfulness? Single Page? Hersteller von Webframeworks bombardieren uns Webinteressierte permanent mit angeblichen Killerfeatures und überlegenen Architekturen. Doch bei der Auswahl des richtigen Frameworks hilft uns das nicht.

    Dieser Vortrag soll wirkliche Unterschiede in der Architektur von Webframeworks aufzeigen und Kriterien zur Bewertung an die Hand geben, die über das Aufzählen von Features in blödsinnigen Featuretabellen hinausgehen – und dabei zeigen, dass Sie sich weniger für ein Framework als für eine Architekturoption entscheiden.

    Mehr lesen

    OAuth2 und OpenID Connect

    Vortrag Christoph Iserlohn, Simon Kölsch JAX 2015 Folien verfügbar

    Als Web-Nutzer möchte ich eigentlich nur eins: Endlich keine 100 verschiedene Passwörter mehr und trotzdem sichere Authentifizierung. OpenID und OAuth sind aus diesen Problemen heraus entstanden und über mehrere Jahre zu einer komplexen Sammlung an unterschiedlichen Spezifikationen gewachsen. Diese Session gibt einen Überblick über die Ideen dahinter, Einsatzzwecke und Funktionsweise.

    Mehr lesen
  • Hypermedia-APIs für das Internet of Things

    Vortrag Oliver Wolf JAX 2015 Folien verfügbar

    Ein wesentliches Merkmal von Diensteplattformen im Internet of Things ist deren hohe Dynamik. Verschiedenste Arten von autonom kommunizierenden “Dingen” können jederzeit kommen und gehen, stellen unterschiedlichste Arten von Informationen über sich und ihre Umwelt bereit und lassen sich ihrerseits auf vielfältige Weise von außen beeinflussen. Geht es nun darum, für solche Diensteplattformen Programmierschnittstellen zu schaffen, stellt sich eine Reihe von Fragen: Wie kann ein Nutzer einer solchen Schnittstelle “Dinge” finden? Wie kann er erkennen, welche Informationen “Dinge” liefern und was er mit ihnen tun kann? Und wie lässt sich das alles realisieren, ohne eine zu enge Kopplung zwischen Nutzer und “Dingen” zu erfordern?

    Zu diesen und vielen weiteren Fragen liefern hypermediagetriebene (REST-)Web-APIs eine überzeugende Antwort. Nach einer kurzen Einführung in die Grundlagen von Hypermedia zeigt dieser Vortrag anhand eines konkreten Projektbeispiels aus dem Bereich Smart Home, wie sich aktuelle Hypermediaformate sinnvoll einsetzen lassen, um flexible, erweiterbare und entwicklerfreundliche Programmierschnittstellen für das Internet of Things zu schaffen.

    Mehr lesen
  • Rails gegen Grails

    Artikel Dirk Lingstädt

    Das Angebot an Webframeworks ist üppig, allerdings durch natürliche Selektion und veränderte Ansprüche kleiner als noch vor ein paar Jahren. Die Optionen verringern sich, wenn eine dynamisch typisierte JVM-Sprache zum Einsatz kommen soll.

    Mehr lesen
  • Playing Nice: Designing and implementing well-behaved web APIs

    Vortrag Daniel Westheide Play Framework User Group Berlin Brandenburg

    Providing a great web API means being a well-behaved citizen of the web, and hence, to play nicely with all the other citizens out there: Browsers, caches, proxies, crawlers and so on.

    Unfortunately, the Play Framework, like many other web frameworks, does not offer a lot of help in implementing such a well-behaved web API. However, it turns out to be quite flexible and modular, so we can easily extend it or replace parts of it that stand in our way.

    In this talk, you will learn about principles for designing well-behaved web APIs and how to implement them with Play. Daniel will discuss where Play gets in the way, show how we can overcome those obstacles and introduce a few libraries to ease the development of REST APIs with Play.

    Mehr lesen
  • Frontend Dependency-Management in Rails

    Blog-Post Roman Stranghöner

    Im letzten Blogpost über Bower sind viele Gründe für die Verwendung eines Dependency-Management Tools für Frontend-Komponenten genannt worden. Dieser Artikel soll dort anknüpfen, wo der letzte aufgehört hat, und eine Reihe von Möglichkeiten aufzeigen, mit denen Bower in ein fremdes Ökosystem integriert werden kann. Denn in der Regel trifft ein Webframework wie Ruby on Rails oder Play! eigene Vorgaben darüber wie Frontend-Artefakte von einer Webanwendung verwaltet und ausgeliefert werden. Im Folgenden wird Rails als populärer Vertreter eines Webframeworks für einige dieser Integrations-Strategien herhalten.

    Mehr lesen
  • Frontend Dependency-Management mit Bower

    Blog-Post Roman Stranghöner

    Paket Management hat sich in so ziemlich jedem populären Ökosystem der Softwareentwicklung in irgendeiner Form breit gemacht. Und das nicht zu Unrecht: In den seltensten Fällen wird in einem Software-Projekt bei null angefangen. Ob Frameworks oder kleinere Bibliotheken, ein Software-Projekt besteht in der Regel aus vielen einzelnen Bausteinen, die zu einem größeren Ganzen zusammen gesetzt werden. Die Abhängigkeiten von Bausteinen zu Anderen lassen sich bis zu einem bestimmten Grad zwar manuell verwalten, mit zunehmender Größe eines Projekts ist dies auf lange Sicht aber weder praktikabel noch wartbar. Genau an dieser Stelle helfen Dependency-Management Tools dabei Bausteine neu hinzuzufügen, bestehende zu aktualisieren oder deren Abhängigkeiten aufzulösen.

    Mehr lesen
  • Self-Contained Systems

    Link Roman Stranghöner Speakerdeck

    Ein handliches Infodeck, das die Vorzüge einer Architektur aus Self-Contained Systems erläutert und diese mit einem monolithischen Ansatz vergleicht.

    Self-Contained Systems

    Link Roman Stranghöner Speakerdeck

    An infodeck comparing a monolith to a self-contained systems (SCS) approach.

  • Clojure in der Praxis

    Vortrag Philipp Schirmacher, Silvia Schreier Frankfurter Entwicklertag 2015

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp. Doch was bringt mir das bei meiner täglichen Arbeit? Wie setze ich die Entwicklungsumgebung auf? Wie löse ich die typischen Aufgaben? Wie kann ich Webserver bauen, JSON verarbeiten und auf Datenbanken zugreifen? Und vor allem: Warum sollte ich das mit Clojure tun und nicht eine der altbekannten Möglichkeiten verwenden? In dieser Session zeigen wir all das und machen die Teilnehmer fit für Clojure in der Praxis!

    Wir werden Clojure dabei in hands-on Sessions zur effizienten Realisierung einer Web-Anwendung verwenden. Dabei lernen wir ganz nebenbei funktionale Konzepte kennen, die mittlerweile in vielen Sprachen Einzug gehalten haben.

    Mehr lesen
  • Progressive Enhancement in der Praxis

    Vortrag Roman Stranghöner Cologne.js Folien verfügbar

    Sowohl das rapide Wachstum der weltweiten Nutzerzahlen als auch die Vielseitigkeit der Geräte, mit denen das Web zunehmend benutzt wird, stellen die Webentwicklung vor eine große Herausforderung: Wie erreicht man ein möglichst großes Publikum, erfüllt zeitgleich steigende Anforderungen durch neue Webstandards und entwickelt dabei eine wartbare, modulare und wiederverwendbare Codebasis?

    Dieser Vortrag soll anhand von praktischen Beispielen zeigen, dass Progressive Enhancement dabei helfen kann, diesen scheinbaren Widerspruch aufzulösen. Dieses Prinzip ermöglicht durch schichtweise Komposition der Kerntechnologien HTML, CSS und JavaScript sowie schrittweises Hinzufügen von Funktionalität die Umsetzung von interaktiven, robusten und zukunftssicheren Webanwendungen.

    Mehr lesen
  • Reaktive Webentwicklung mit Play und Scala

    Vortrag Tobias Neef Lightweight Java User Group München Folien verfügbar

    Dieser Talk bietet eine Einführung in das Play Framework und dessen reaktiven Werkzeugen. Wer schon immer mal wissen wollte warum man Scala für die Webentwicklung einsetzen sollte, was das Ganze mit reaktiver Programmierung zu tun hat und warum ich mich als genesenden Spring Entwickler sehe, für den ist dieser Talk das Richtige.

    Mehr lesen
  • Bower on Rails – Frontend Dependency-Management in Rails

    Vortrag Roman Stranghöner Ruby User Group Köln Folien verfügbar

    Das explizite Verwalten und automatische Auflösen von Source-Code Abhängigkeiten hat sich bereits in vielen technischen Ökosystemen durchgesetzt. Und spätestens seit Bower ist Dependency-Management auch für Frontend-Komponenten in aller Munde.

    Bewegt man sich im Rails Umfeld, gibt es mit Rake, Bundler und der Asset-Pipeline verschiedene Möglichkeiten ein Dependency-Management Tool wie Bower zu integrieren. Dieser Talk hat zum Inhalt, welche Lösungsansätze es dafür mittlerweile gibt, welche Vor- und Nachteile diese bieten und was man dabei beachten sollte.

    Mehr lesen
  • A practical introduction into Web Development with Play

    Vortrag Tobias Neef Rhein Main Scala Enthusiasts

    Tobias Neef from innoQ will give us a very practical intro into the Play Framework, by actually showing how a web application is built. The presentation will demonstrate how Play integrates various aspects of web application development (Frontend, API, Domain) into a platform for building ergonomic software without much noise and without sacrificing evolvability.

    Mehr lesen
  • Building well-behaved web APIs with Play: The obstacles and how to overcome them

    Vortrag Daniel Westheide Amsterdam.scala Talks & Drinks

    Building applications that follow the REST architectural style can be quite cumbersome. Like most other web frameworks out there, the Play Framework does not support you a lot in building well-behaved web APIs. On the other hand, it makes implementing not-so-restful HTTP APIs super easy. As a consequence, developers choose the path of least resistance.

    However, the Play Framework is actually quite flexible and modular, so we can replace parts that hinder us and add abstractions that help building RESTful web APIs.

    After a motivational introduction to the nature of truly RESTful web APIs, Daniel will explain where Play gets in the way of building them and show how we can overcome these obstacles. I will introduce libraries for supporting common hypermedia formats and show how to implement Play-based web APIs in a resource-oriented manner.

    Mehr lesen
  • Ruby on Rails

    Podcast Robert Glaser, Stefan Tilkov

    In dieser Folge spricht Robert Glaser mit Stefan Tilkov über das Web-Framework Ruby on Rails. Robert stellt die Hauptbestandteile und aktuellen Neuerungen des Frameworks vor und schildert seine Erfahrungen im täglichen Umgang mit Rails. Mehr lesen
  • Clojure in der Praxis

    Vortrag Philipp Schirmacher, Silvia Schreier W-JAX 2014 Folien verfügbar

    Clojure ist eine JVM-Sprache, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp. Doch was bringt mir das bei meiner täglichen Arbeit? Wie setze ich die Entwicklungsumgebung auf? Wie löse ich die typischen Aufgaben? Wie kann ich Webserver bauen, JSON verarbeiten und auf Datenbanken zugreifen? Und vor allem: Warum sollte ich das mit Clojure tun und nicht eine der altbekannten Möglichkeiten verwenden? In dieser Session zeigen wir all das und machen die Teilnehmer fit für Clojure in der Praxis!

    Mehr lesen
  • Progressive Enhancement in der Praxis

    Vortrag Roman Stranghöner WebTech Conference 2014 Folien verfügbar

    Sowohl das rapide Wachstum der weltweiten Nutzerzahlen als auch die Vielseitigkeit der Geräte, mit denen das Web zunehmend benutzt wird, stellen die Webentwicklung vor eine große Herausforderung: Wie erreicht man ein möglichst großes Publikum, erfüllt zeitgleich steigende Anforderungen durch neue Webstandards und entwickelt dabei eine wartbare, modulare und wiederverwendbare Codebasis?

    Dieser Vortrag soll anhand von praktischen Beispielen zeigen, dass Progressive Enhancement dabei helfen kann, diesen scheinbaren Widerspruch aufzulösen. Dieses Prinzip ermöglicht durch schichtweise Komposition der Kerntechnologien HTML, CSS und JavaScript sowie schrittweises Hinzufügen von Funktionalität die Umsetzung von interaktiven, robusten und zukunftssicheren Webanwendungen.

    Mehr lesen
  • Hypermedia APIs für das Internet of Things

    Vortrag Oliver Wolf Internet of Things Conference Folien verfügbar

    Ein wesentliches Merkmal von Diensteplattformen im Internet of Things ist deren hohe Dynamik. Verschiedenste Arten von autonom kommunizierenden “Dingen” können jederzeit kommen und gehen, stellen unterschiedlichste Arten von Informationen über sich und ihre Umwelt bereit und lassen sich ihrerseits auf vielfältige Weise von außen beeinflussen. Geht es nun darum, für solche Diensteplattformen Programmierschnittstellen zu schaffen, stellen sich eine Reihe von Fragen: Wie kann ein Nutzer eine solchen Schnittstelle “Dinge” finden? Wie kann er erkennen, welche Informationen “Dinge” liefern und was er mit ihnen tun kann? Und wie lässt sich das alles realisieren, ohne eine zu enge Kopplung zwischen Nutzer und “Dingen” zu erfordern?

    Zu diesen und vielen weiteren Fragen liefern hypermedia-getriebene (REST-)Web APIs eine überzeugende Antwort. Nach einer kurzen Einführung in die Grundlagen von Hypermedia zeigt dieser Vortrag anhand eines konkreten Projektbeispiels aus dem Bereich Smart Home, wie sich aktuelle Hypermedia-Formate sinnvoll einsetzen lassen, um flexible, erweiterbare und entwicklerfreundliche Programmierschnittstellen für das Internet of Things zu schaffen.

    Mehr lesen
  • Eine Website — viele Geräte

    Podcast Robert Glaser, Roman Stranghöner, Till Schulte-Coerne

    Eine Website sollte unabhängig von der Größe des Browser-Fensters funktionieren und ihren Inhalt in optimaler Form darstellen. Dies ist die Grundidee von Responsive Web-Design. Robert Glaser und Roman Stranghöner berichten in dieser Folge von ihren Erfahrungen mit diesem Ansatz sowie von den zu Grunde liegenden Techniken und Ideen. Mehr lesen
  • REST und RESTful HTTP: Was es ist – und was nicht

    Vortrag Stefan Tilkov Developer Week 2014

    REST gehört mittlerweile zum guten Ton: Was auch immer wir ansehen, ob Produkt, Dienst oder Framework: Überall wimmelt es nur so von Dingen, die behaupten, „RESTful“ zu sein. Aber wie immer, wenn etwas gerade in Mode ist, handelt es sich dabei um Etikettenschwindel. In diesem Vortrag beginnen wir mit einer pragmatischen Einführung in die Grundlagen von REST, des Architekturstils des Webs, bevor wir den größten Teil unserer Zeit damit verbringen, uns die häufigsten Irrtümer und Missverständnisse rund um das Thema anzusehen.

    Mehr lesen
  • “REST”: I don’t Think it Means What You Think it Does

    Vortrag Stefan Tilkov goto Amsterdam 2014

    These days, REST has become truly fashionable. No matter what system, product or service we look at, everything claims to offer a “REST API”. But as is often the case with technical concepts that gain acceptance, many instances just stick the label on something that really doesn’t meet expectations. This session will start with a pragmatic introduction to the basic principles of the Web’s architectural approach. Next, we’ll spend the majority of the time looking at the most common misconceptions, and conclude with an extended Q&A.

    Mehr lesen
  • ROCA im Java-EE-Kontext - Endlich webkonforme Anwendungen bauen!

    Vortrag Holger Kraus, Frederik Dohr BEDcon 2014 Folien verfügbar

    ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz zur Entwicklung von Webanwendungen, der sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.

    Dieser Ansatz fördert Anwendungen, die sowohl robust und wartbar sind, als auch modernen Ansprüchen hinsichtlich der Benutzerfreundlichkeit Rechnung tragen. Dabei ist ROCA im Kern nichts Neues, sondern eine Rückbesinnung auf die klassische Architektur des Webs.

    In Java-Enterprise-Projekten wird dagegen oft auf der Basis von statusbehafteten Komponenten-Server-Frameworks entwickelt. In diesem Umfeld muss man als Architekt oder Entwickler deshalb oft Überzeugungsarbeit leisten. Der Vortrag stellt die Kernelemente von ROCA vor und diskutiert, welche Optionen es zur Umsetzung im Java-EE-Kontext gibt, mit welchen Schwierigkeiten man zu kämpfen hat und warum es trotzdem eine gute Idee ist.

    Mehr lesen

    REST: Implementierungsansätze auf der JVM

    Vortrag Stefan Tilkov, Martin Eigenbrodt BEDcon 2014 Folien verfügbar

    REST-basierte APIs werden immer populärer, und damit steigt auch die Anzahl von Bibliotheken und deren Mächtigkeit. In diesem Vortrag wollen wir die Theorie auf das absolute Minimum begrenzen und ganz praktisch zeigen, wie man REST-APIs mit Java und anderen JVM-Sprachen realisiert.

    Die Verwendung von verschiedenen Sprachen, Bibliotheken und Frameworks gibt uns die Chance, die unterschiedlichen Lösungsansätze für Aufgaben und Problemstellungen wie URL/Pfad-Mapping, (Un)Marshalling, Content Negotiation, Caching und Headermanipulation sowie deren Vor- und Nachteile gegenüberzustellen – und bei der Gelegenheit auch gleich die Stärken und Schwächen der jeweiligen Umgebung zu betrachten.

    Mehr lesen
  • Architektur 201x: Neue Konzepte für die Architektur komplexer Systeme

    Vortrag Stefan Tilkov JavaLand 2014 Folien verfügbar

    Während im Enterprise-Umfeld Systeme häufig immer noch nach denselben Mustern entworfen werden wie vor 10 oder 15 Jahren, haben sich die Dinge in den immer größer werdenden Internet-Plattformen, -Diensten und Anwendungen der bekannten Internet-Anbieter dramatisch weiterentwickelt. In diesem Vortrag wird diskutiert, wie sich nach Mustern aus diesem Umfeld und mit der Maxime “weniger ist mehr” kleinere Systeme sehr viel effizienter entwickeln und diese dann zu großen Systemlandschaften zusammensetzen lassen.

    Mehr lesen

    Tragfähige Frontend-Architekturen

    Vortrag Till Schulte-Coerne JavaLand 2014 Folien verfügbar

    Nutzer von Webanwendungen erwarten heutzutage zurecht ein gewisses Maß an Dynamik und Komfort in den Frontends, das weit über die nativen Fähigkeiten von HTML hinausgeht. Begegnet man dieser Anforderung ohne ein klares Konzept, führt dies fast immer zu Wildwuchs und unwartbarem JavaScript-Code.

    Dieser Vortrag soll zwei Möglichkeiten gegenüberstellen, die diesem Problem eine klare Frontend-Architektur entgegenstellen: ROCA und Single-Page-Anwendungen.

    ROCA bzw. Unobtrusive JavaScript ist ein Ansatz, der vom Server kommend versucht, JavaScript eine klare Rolle zuzuweisen und so beherrschbar zu halten. Dies basiert im Kern auf dem Prinzip des “Progressive Enhancement”, also auf dem sukzessiven Hinzufügen von Features genau dann, wenn die Zielplattform diese auch unterstützt. Progressive Enhancement wird oft als das klassische Prinzip der Web-Frontend-Architektur angesehen, auch wenn es in der Praxis selten konsequent umgesetzt wird.

    Single-Page-Anwendungen stellen eine weitaus radikalere aber ebenso tragfähige Variante dar, bei der weitgehend auf Applikationslogik im Server verzichtet wird, da die Anwendung meist vollständig in JavaScript implementiert ist. Dies resultiert in einem Programmiermodell, in dem das Client-Server-Problem fast gänzlich verschwindet, was erheblich zur Reduktion von Komplexität beitragen kann.

    Mehr lesen
  • Sicherheit von IT-Systemen

    Podcast Willem van Kerkhof, Stefan Tilkov

    Willem van Kerkhof spricht mit Stefan Tilkov über die Sicherheit von IT-Systemen. Allgemeine nichttechnischen Aspekte, wie die Wahl von Passwörtern, sind dabei mindestens genauso wichtig wie technische Implikationen beispielsweise zur Absicherung von Web-Anwendungen. Mehr lesen
  • Behavioural Abstractions in Play Framework

    Vortrag Tobias Neef Ping Conference Folien verfügbar

    Play is a framework which allows you to kick start your project with a meaningful initial structure. But projects evolve and with them the need to modularize the application into independent components, which can be combined, configured and reused.

    Fortunately Play offers tooling like Actions, Filters and Plug-ins, which help with abstracting over common problems classes. This talk focuses on patterns for modularising behavioural and structural aspects of a Play application, based on experiences gained in real life Play projects.

    Mehr lesen
  • Web Development mit Clojure

    Vortrag Stefan Tilkov, Philipp Schirmacher W-JAX 2013

    Clojure ist eine JVM-basierte funktionale Sprache mit besonderen Konzepten, die das Unmögliche möglich macht: Ein tatsächlich in der Praxis von normalsterblichen Entwicklern einsetzbares Lisp. In dieser Session zeigen wir nach einer Minimaldosis Theorie, wie mit Clojure und einem Satz von Open-Source-Bibliotheken effizient und eine hochqualitative Webanwendung realisiert werden kann.

    Mehr lesen

    ROCA: Resource-oriented Client Architecture

    Vortrag Stefan Tilkov, Till Schulte-Coerne W-JAX 2013

    Eingezwängt zwischen statusbehafteten Komponenten-Server-Frameworks auf der einen und Single-Page-Apps auf der anderen Seite könnte man meinen, die klassische Architektur von Webanwendungen hätte ausgedient. Das stimmt jedoch keineswegs: Schöpft man das Potenzial des Webs vernünftig aus, so stellt man fest, dass es gerade ohne ein Verbiegen der Grundprinzipien möglich ist, skalierbare und ergonomische Anwendungen zu entwickeln. ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz, der diesem Muster folgt und sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.

    Mehr lesen

    Von passiven zu aktiven APIs

    Vortrag Stefan Tilkov, Oliver Wolf W-JAX 2013 Folien verfügbar

    REST-APIs sind ein wesentlicher Erfolgsfaktor für moderne webbasierte Dienste. Viele APIs verlangen jedoch vom Nutzer detailliertes Wissen über mögliche Aktionen auf exponierten Ressourcen, obwohl dies bei konsequenter Nutzung von Hypermedia vermeidbar wäre. In diesem Vortrag zeigen wir anhand konkreter Beispiele, wie man von solchen passiven zu hypermediagetriebenen, aktiven APIs kommt.

    Mehr lesen
  • Web API DOs and DON’Ts

    Vortrag Oliver Wolf GOTO Berlin Conference 2013 Folien verfügbar

    Web APIs are have become ubiquitous nowadays – there’s hardly any internet-based service that doesn’t rely on APIs to extend its reach beyond its own web site and, most importantly, into the mobile world.

    As we see ongoing progress made towards the application of advanced concepts such as hypermedia, it becomes increasingly important to strike the right balance between technical sophistication on one hand and simplicity and conciseness on the other hand.

    In this session, I’m going to talk about common pitfalls and challenges encountered when designing, implementing, deploying and operating Web APIs and highlight a couple of best practices that help ensure your API strategy becomes a success.

    Mehr lesen
  • Web Development: You’re Doing it Wrong

    Vortrag Stefan Tilkov GOTO Berlin Conference 2013

    Even without any sort of programming framework with lots of abstraction layers and fancy tooling, the Web platform is one of the most powerful environments for distributed and collaborative systems. If, that is, we actually /use/ it instead of continuously /abusing/ it through trying to turn it into something it’s not. In this session, we’ll challenge many commonly-held assumptions about how to best develop web applications. Even though we’ll briefly touch the REST architectural style, most of the time will be spent discussing the strengths and ideal roles for HTML, CSS, JavaScript and their connection to the Web’s core standards, HTTP and URIs. We’ll see how a focus on simplicity and moderate use of technologies can lead to great applications that integrate well, scale well, are fun to develop, and are maintainable in the long run.

    Mehr lesen
  • Tutorial: Entwicklung von Web-Applikationen mit web2py

    Vortrag Christoph Iserlohn PyCon.DE 2013

    Web2py ist ein umfassendes und leistungsstarkes Web-Framework, welches den Vergleich mit den etablierten Python basierten Web-Frameworks nicht scheuen braucht. Einfach in der Handhabung bietet web2py alles was man für die Entwicklung von schnellen, sicheren und skalierbaren Web-Applikationen braucht.

    Dieses Tutorial führt die Teilnehmern von der Installation bis zur ersten eigenen Web-Applikation.

    Teilnehmer sollten Grundkenntnisse in HTML und Python-Programmierung mitbringen.

    Mehr lesen
  • ROCA: Keine Angst vor HTML und JavaScript

    Artikel Phillip Ghadir

    ROCA ist ein Architekturstil zur Entwicklung anständiger und zukunftsfähiger Web-Frontends. Er umfasst eine Reihe von Empfehlungen sowohl für die Client- als auch für die Serverseite. Der ROCA-Stil erfordert von vielen Java-Entwicklern ein gewisses Umdenken. Grund genug, sich den Stil genauer anzuschauen.

    Mehr lesen
  • CSS-Präprozessoren

    Podcast Roman Stranghöner, Falk Hoppe, Stefan Tilkov

    Roman Stranghöner und Falk Hoppe sprechen mit Stefan Tilkov über die Möglichkeit, die Verwendung von CSS mit Hilfe von Präprozessoren zu vereinfachen und besser in die Gesamtarchitektur von Webanwendungen einzubetten. Mehr lesen
  • CSS-Architektur

    Podcast Roman Stranghöner, Falk Hoppe, Stefan Tilkov

    Falk Hoppe und Roman Stranghöner sprechen mit Stefan Tilkov über die Architekturaspekte von CSS. Mehr lesen
  • RoR + DynamoDB = ?

    Vortrag Silvia Schreier JRubyConf 2013 Folien verfügbar

    We are currently developing a Ruby on Rails application with Amazon’s DynamoDB. Using a NoSQL cloud service and especially DynamoDB with its particular restrictions entails a lot of challenges.

    We will share our experiences using DynamoDB in general and in combination with Ruby (and Rails) to help you to decide if you want to use DynamoDB for your project (or not). We also provide a list of things you should to keep in mind if you start using DynamoDB. These range from managing your database, over mapping your model to the database, up to testing. Furthermore, we present the design and technical details of our persistence module.

    Mehr lesen
  • Frontend-Optimierung von Webanwendungen

    Podcast Till Schulte-Coerne, Stefan Tilkov

    In dieser Episode unterhält sich Till Schulte-Coerne mit Stefan Tilkov über die Frontend-Optimierung bei Webanwendungen. Till macht dabei darauf aufmerksam, dass Geschwindigkeit nicht nur im Backend verbessert werden kann und stellt verschiedene Möglichkeiten zum Optimieren vor. Mehr lesen
  • Im Web zu Hause

    Artikel Frederik Dohr, Till Schulte-Coerne

    Die Resource-oriented Client Architecture stellt einen Gegenpol zum Trend dar, Logik auf den Client zu verlagern. Zum Einsatz kommen dabei vertraute Webtechniken, welche die Entwicklung zeitgemäßer, ergonomischer, robuster, skalierbarer und wartbarer Webanwendungen unterstützen.

    Mehr lesen
  • Von passiven zu aktiven APIs

    Vortrag Stefan Tilkov, Oliver Wolf JAX 2013 Folien verfügbar

    REST-APIs sind ein wesentlicher Erfolgsfaktor für moderne webbasierte Dienste. Viele APIs verlangen jedoch vom Nutzer detailliertes Wissen über mögliche Aktionen auf exponierten Ressourcen, obwohl dies bei konsequenter Nutzung von Hypermedia vermeidbar wäre. In diesem Vortrag zeigen wir anhand konkreter Beispiele, wie man von solchen passiven zu Hypermedia-getriebenen aktiven APIs kommt.

    Mehr lesen
  • ROCA: Embrace the Web

    Vortrag Frederik Dohr, Willem van Kerkhof Booster

    (cf. http://2013.boosterconf.no/talks/163)

    Highly interactive web applications have long overtaken static pages as the dominant face of the web as perceived by end users, leading to the much-hyped term “Web 2.0”. Although the precise meaning of that term remains ill-defined, a responsive interaction experience and the possibility to utilize user-generated data are certainly among its core aspects. Considering a growing range of end-user devices and new browser APIs in different stages of maturity, web developers today are faced with a dramatic increase in possibilities and challenges.

    Apart from these technological advances, a host of new architectural approaches to building web applications has emerged in the past few years. All of these approaches can be classified along a spectrum ranging from server-side to client-side emphasis, with great differences in the level of “web awareness” expected of developers.

    ROCA (http://roca-style.org) is an attempt to capture a common - if recently somewhat neglected - approach which leverages both server-side and client-side capabilities while emphasizing the authority of the server-side for essential application logic. By building on the well-understood nature of the web, this approach not only preserves the virtues of the web without sacrificing user experience, it also leads to cleaner and more maintainable software architectures.

    This tutorial will explain the basic proposition of ROCA, provide various hands-on exercises and serve as a forum for discussing conceptual and implementation issues.

    Participants should have at least a basic understanding of HTML, JavaScript and REST principles.

    Mehr lesen
  • Architekturkonzepte für große Webanwendungen

    Vortrag Stefan Tilkov OOP 2013

    “Früher hatten Unternehmen Websites, heute sind sie Websites” - auch wenn dieses Bonmot nicht immer zutrifft, ist doch klar, dass Webanwendungen immer wichtiger werden, ob nun für den externen oder internen Gebrauch. In dieser Session befassen wir uns mit Entwicklungs-, Modularisierungs-, Betriebs- und Organisationskonzepten großer Web-Systeme. Wir betrachten die Rolle verschiedener Frontend- und Backend-Technologien und adressieren Fragen nach Ergonomie, Skalierbarkeit, Performance, aber auch Nachhaltigkeit und Investitionsschutz.

    Sie lernen:

    • Große Web-Anwendungen beherrschen, sowohl im öffentlichen Web wie auch unternehmensintern

    • Einheitliches Look & Feel trotz Modularisierung und Dekomposition

    • Technische Herausforderungen verstehen und adressieren können

    Mehr lesen
  • NodeJS

    Vortrag Stefan Tilkov eJug Seminar

    Node.js ist ein Framework zur Umsetzung von Netzwerkapplikationen in JavaScript, dessen Unterstützung für Funktionen höherer Ordnung perfekt zu einem Programmiermodell passt, das Non-blocking I/O in den Mittelpunkt stellt. In dieser Session wird Node.js und das umgebende Ökosystem vorgestellt und gezeigt, wie sich auf dieser Basis hochperformante Clients und Server implementieren lassen.

    Mehr lesen
  • ROCA

    Artikel Falk Hoppe, Till Schulte-Coerne, Stefan Tilkov

    Eingezwängt zwischen statusbehafteten, serverseitigen Komponenten-Frameworks auf der einen und Single-Page-Apps auf der anderen Seite könnte man meinen, die klassische Architektur von Webanwendungen hätte ausgedient. Das stimmt jedoch keineswegs: Schöpft man das Potenzial des Webs vernünftig aus, so stellt man fest, dass es gerade ohne ein Verbiegen der Grundprinzipien möglich ist, skalierbare und ergonomische Anwendungen zu entwickeln. ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz, der diesem Muster folgt und sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.

    Mehr lesen
  • ROCA: Resource-oriented Client Architecture

    Vortrag Stefan Tilkov, Till Schulte-Coerne W-JAX 2012

    Eingezwängt zwischen statusbehafteten Komponenten-Server-Frameworks auf der einen und Single-Page-Apps auf der anderen Seite könnte man meinen, die klassische Architektur von Webanwendungen hätte ausgedient. Das stimmt jedoch keineswegs: Schöpft man das Potenzial des Webs vernünftig aus, so stellt man fest, dass es gerade ohne ein Verbiegen der Grundprinzipien möglich ist, skalierbare und ergonomische Anwendungen zu entwickeln. ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz, der diesem Muster folgt und sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.

    Mehr lesen
  • RESTful HTTP - Beyond the Intro Level

    Vortrag Stefan Tilkov W-JAX 2012

    There is probably no developer left who hasn’t been exposed to at least one introduction to REST, and most have by now gathered some first-hand experience. In this session, there will be no introduction, only advanced stuff, such as hypermedia aspects, security, format/resource/representation design, and implementation issues - with room for lots of questions (and hopefully, answers).

    Mehr lesen
  • Power Workshop: RESTful HTTP in der Praxis

    Vortrag Stefan Tilkov, Phillip Ghadir W-JAX 2012

    In diesem Workshop lernen Sie die unter dem Begriff “REST” (REpresentational State Transfer) beschriebenen Prinzipien kennen und erfahren, wie auch fortgeschrittene Problemstellungen auf Basis der Architektur des Web gelöst werden können. Dabei wird vor allem auf die Architekturaspekte Wert gelegt und es werden sowohl grundlegende als auch weiterführende Aspekte behandelt. REST - Historie und Grundprinzipien REST vs. Web Services Patterns und Antipatterns Java-Frameworks für Clients und Server Einsatz von HTTP Caching Fortgeschrittene Use Cases: zuverlässige Zustellung, Sicherheit, Integrationsaspekte

    Mehr lesen
  • Stop flying blind. Profiling your App’s Internals

    Vortrag Robert Glaser WebTech Conference 2012 Folien verfügbar

    Your Rails app has gone into production and thus has a lot to tell you. Learn how to take advantage of the notification system Rails provides and why manually parsing log files is a bad idea almost every time.

    Mehr lesen
  • ROCA: Resource-oriented Client Architecture

    Vortrag Stefan Tilkov WebTech Conference 2012

    Eingezwängt zwischen statusbehafteten Komponenten-Server-Frameworks auf der einen und Single Page Apps auf der anderen Seite könnte man meinen, die klassische Architektur von Webanwendungen hätte ausgedient. Das stimmt jedoch keineswegs: Schöpft man das Potenzial des Webs vernünftig aus, so stellt man fest, dass es gerade ohne ein Verbiegen der Grundprinzipien möglich ist, skalierbare und ergonomische Anwendungen zu entwickeln. ROCA (Resource-oriented Client Architecture) ist der Name für einen Ansatz, der diesem Muster folgt und sich vor allem durch den richtigen Einsatz von JavaScript sowie die Einhaltung von REST-Prinzipien auszeichnet.

    Mehr lesen

    RESTful HTTP - Beyond the Intro Level

    Vortrag Stefan Tilkov WebTech Conference 2012

    There is probably no developer left who hasn’t been exposed to at least one introduction to REST, and most have by now gathered some first-hand experience. In this session, there will be no introduction, only advanced stuff, such as hypermedia aspects, security, format/resource/representation design, and implementation issues - with room for lots of questions (and hopefully, answers).

    Mehr lesen
  • RESTful HTTP für SOA: Stand der Dinge

    Vortrag Stefan Tilkov JAX on Tour 2012

    Eine Einführung in REST und RESTful HTTP benötigen die meisten Architekten nicht mehr. Wie aber sieht es aus, wenn man sich tatsächlich dafür entschieden hat, den Architekturstil des Webs für eigene Architekturen konkret auszuprägen? Nach der (versprochen!) kürzesten REST-Einführung der Welt werden in dieser Session bewusst die Probleme angesprochen, die sich bei der konkreten Umsetzung in der Praxis stellen. Ein besonderer Schwerpunkt liegt dabei auf Hypermedia-Aspekten, Sicherheit, Format-, Ressourcen- und Repräsentationsdesign und Implementierungsstrategien – mit reichlich Raum für Fragen und Antworten.

    Mehr lesen
  • Webanwendungen mit dem Play!-Framework

    Artikel Phillip Ghadir, Philipp Haußleiter

    Das Play!-Framework ist ein recht junges, vollständiges MVC-Framework, das den Charme von Ruby on Rails hat. Aber anstatt unreflektiert jede Entwurfsentscheidung von Rails ins Play!-Framework zu übernehmen - wie das manch andere Rails-Klone gemacht haben -, haben die Entwickler darauf geachtet, es so zu konstruieren, dass es sich gut in das Ökosystem eines typischen Java-Entwicklers einfügt.

    Mehr lesen
  • Stop flying blind. Profiling your App’s Internals

    Vortrag Robert Glaser RailsWayCon 2012 Folien verfügbar

    Your Rails app has gone into production and thus has a lot to tell you. Learn how to take advantage of the notification system Rails provides and why manually parsing log files is a bad idea almost every time.

    Mehr lesen
  • Web und Cloud fürs Unternehmen – was interessieren uns schon Twitter, Facebook, Google und Co.?

    Vortrag Stefan Tilkov, Oliver Wolf OOP 2012

    Natürlich ist interessant, was die ganz Großen im Web tun, um mit der Last von mehreren Hundert Millionen Benutzern fertig zu werden. Aber welche konkreten Lehren können Entwickler in Unternehmen daraus ziehen? Der Vortrag beschreibt, welche Prinzipien und Ansätze auf den Kontext einer Unternehmensanwendung und auf kleinere externe Web-Anwendung übertragbar sind.

    Mehr lesen
  • Moderne Web-Architektur

    Vortrag Till Schulte-Coerne, Stefan Tilkov OOP 2012

    Die Architekturen von Web-Anwendungen haben sich in den letzten Jahren rasant entwickelt. In diesem Tutorial wird gezeigt, wie eine Web-Anwendung State-of-the-Art aufgebaut wird. Dabei stehen keine Programmiersprache oder einzelne Frameworks, sondern die Gesamtarchitektur im Mittelpunkt, vom optimierten Frontend über eine modulare und skalierbare Geschäftslogik bis hin zur passenden Persistenz. Buzzwords wie REST, Distributed Caching, Sharding, NoSQL werden dabei enttarnt und auf ihre konkreten Auswirkungen auf die Architektur hin untersucht.

    Mehr lesen
  • Workshop: Architekturen für hochskalierbare Webanwendungen

    Vortrag Stefan Tilkov, Till Schulte-Coerne W-JAX 2011

    Für die Entwicklung von Webanwendungen gibt es eine ganze Reihe unterschiedlicher Realisierungsalternativen. Die Entscheidung für eine bestimmte Programmiersprache oder ein bestimmtes Webframework ist dabei nur ein kleiner Baustein, denn eine Webanwendung, insbesondere wenn Sie hohen, nichtfunktionalen Anforderungen unterliegt, ist eine Gesamtlösung, die aus vielen individuell entwickelten, aber auch vielen Standardkomponenten besteht. Der Workshop beschäftigt sich dazu mit den zum Teil wenig bekannten Details der Basisprotokolle, mit den Auswirkungen, die sich aus der internen Anwendungsarchitektur für die Gesamtarchitektur ergeben, mit Frontend-Optimierungen und der Einbettung in die Gesamtinfrastruktur aus Standardkomponenten wie Intermediaries und den Invidualbestandteilen.

    Mehr lesen
  • Node.js: eine Einführung

    Vortrag Stefan Tilkov W-JAX 2011

    Node.js ist ein Framework zur Umsetzung von Netzwerkapplikationen in JavaScript, dessen Unterstützung für Funktionen höherer Ordnung perfekt zu einem Programmiermodell passt, das Non-blocking I/O in den Mittelpunkt stellt. In dieser Session wird Node.js und das umgebende Ökosystem vorgestellt und gezeigt, wie sich auf dieser Basis hochperformante Clients und Server implementieren lassen.

    Mehr lesen
  • Rails Engines. Doing it wrong. And then right.

    Vortrag Robert Glaser RailsWayCon 2011 Folien verfügbar

    The session should show the big advantages that the engines feature brings since Rails 3.0. On the other hand it should also hint on the possible pitfalls based on a real life project. After using engines extensively in a government project, there are lots of practical experience that can be shared. - How are we using engines? - What have we done wrong/right? - What are we still not able to do?

    Mehr lesen
  • MongoDB on Rails 3, a successful real world struggle

    Vortrag Willem van Kerkhof RailsWayCon 2011

    In this session we will briefly cover the basic aspects of MongoDB, its differences to other DBMS and its use in Rails 3 using Mongoid. The main focus will however be on problems and caveats encountered and solved during a recent real-world dating platform project involving n-to-n matching and not-so-trivial queries causing huge initial performance problems.

    Mehr lesen
  • Architekturen für hochskalierbare Webanwendungen

    Vortrag Stefan Tilkov, Till Schulte-Coerne JAX 2011

    Für die Entwicklung von Webanwendungen gibt es eine ganze Reihe unterschiedlicher Realisierungsalternativen. Die Entscheidung für eine bestimmte Programmiersprache oder ein bestimmtes Webframework ist dabei nur ein kleiner Baustein. Denn eine Webanwendung, insbesondere wenn Sie hohen, nichtfunktionalen Anforderungen unterliegt, ist eine Gesamtlösung, die aus vielen individuell entwickelten, aber auch vielen Standardkomponenten besteht. Der Workshop zeigt zunächst systematisch, aus welchen Architekturelementen eine Webanwendung bzw. Website besteht. Für die verschiedenen Schichten werden verschiedene State-of-the-Art-Alternativen vorgestellt. Diese werden schließlich in Beziehung zu unterschiedlichen Anforderungen wie Entwicklungs- und Betriebskosten, Verfügbarkeit, Konsistenz, Performance, Wartbarkeit und Investitionssicherheit gesetzt.

    Mehr lesen
  • Architekturen für hochskalierbare Webanwendungen

    Vortrag Stefan Tilkov, Till Schulte-Coerne Entwickler Tage 2011

    Der Workshop besteht aus detaillierten Betrachtungen der Protokolle und gängiger Technologien sowie aus der Beleuchtung verschiedener Szenarien und Architekturvarianten diese sinnvoll einzusetzen. Dabei ist er aber größtenteils unabhängig von Frameworks bzw. Programmiersprachen gestaltet und beleuchtet diese höchstens am Rande. Der Workshop soll ein umfassendes Bild verschiedener Varianten zur Erstellung von Web-Applikationen für unterschiedliche Einsatzszenarien vermitteln, wofür Vor- und Nachteile verschiedener Ansätze diskutiert werden. Außerdem werden Architekturen und Methoden vorgestellt, um sichere und performante Webanwendungen zu entwickeln sowie vorhandene Anwendungen zu beschleunigen bzw. zu entlasten.

    Mehr lesen
  • Enterprise Google? Nutzung von Google-Services im Unternehmen

    Vortrag Stefan Tilkov, Till Schulte-Coerne OOP 2011

    Mit der Google App Engine (GAE) und den GData-Services stellt Google eine Cloud Computing-Plattform zur Verfügung, die auch Normalsterblichen höchstmögliche Skalierbarkeit bieten soll. Aber ist sie auch für einen Unternehmenseinsatz geeignet? In dieser Session betrachten wir nach einer kurzen Einführung die Herausforderungen, die sich beim Einsatz der Google-Plattform im Enterprise-Kontext ergeben, insbesondere bei der Integration in hybride Gesamtlösungen.

    Mehr lesen
  • NoSQL - Einsatzgebiete für die neue Datenbank-Generation

    Artikel Dirk Lingstädt

    NoSQL ist derzeit in aller Munde, obwohl manche Konzepte und Technologien schon seit Jahrzehnten bestehen. Der Begriff umspannt inzwischen derart viele Datenbank-Kategorien und -Produkte, dass es oft zu Verwirrungen und falschen Annahmen über den geeigneten Einsatz kommt. Dieser Artikel betrachtet anhand konkreter Beispielszenarien die Kriterien, die bei der Entscheidung für ein klassisches relationales Datenbanksystem oder eine der NoSQL-Varianten eine Rolle spielen.

    Mehr lesen
  • Power Workshop „Architekturen für hochskalierbare Webanwendungen“

    Vortrag Stefan Tilkov, Till Schulte-Coerne w-jax 10

    Für die Entwicklung von Webanwendungen gibt es eine ganze Reihe unterschiedlicher Realisierungsalternativen. Die Entscheidung für eine bestimmte Programmiersprache oder ein bestimmtes Webframework ist dabei nur ein kleiner Baustein. Denn eine Webanwendung - insbesondere, wenn Sie hohen nichtfunktionalen Anforderungen unterliegt - ist eine Gesamtlösung, die aus vielen individuell entwickelten, aber auch vielen Standardkomponenten besteht. Der Workshop zeigt zunächst systematisch, aus welchen Architekturelementen eine Webanwendung bzw. Website besteht. Für die verschiedenen Schichten werden verschiedene State-of-the-art-Alternativen vorgestellt. Diese werden schließlich in Beziehung zu unterschiedlichen Anforderungen wie Entwicklungs- und Betriebskosten, Verfügbarkeit, Konsistenz, Performance, Wartbarkeit und Investitionssicherheit gesetzt.

    Mehr lesen
  • HTML 5

    Vortrag Till Schulte-Coerne w-jax 10

    Der neue HTML-Standard wird voraussichtlich neben einer Reihe neuer Elemente auch einige Veränderungen unter der Haube mitbringen. Dieser Vortrag soll einen kurzen Einblick in den aktuellen Stand der Spezifikation bieten. Darüber hinaus soll er vermitteln, welche Features schon jetzt sinnvoll eingesetzt werden können, ohne nicht kompatible Browser von der Darstellung einer Webseite auszuschließen.

    Mehr lesen
  • Ruby on Rails

    Vortrag Robert Glaser WebAppDays 2010

  • Workshop Webarchitektur – Architekturen für hochskalierbare Webanwendungen

    Vortrag Till Schulte-Coerne, Stefan Tilkov JAX 2010

    Für die Realisierung von Webanwendungen gibt es ganze Reihe unterschiedlicher Realisierungsalternativen. Die Entscheidung für eine bestimmte Programmiersprache oder ein bestimmtes Webframework ist dabei nur ein kleiner Baustein. Denn eine Webanwendung - insbesondere, wenn Sie hohen nicht funktionalen Anforderungen unterliegt - ist eine Gesamtlösung, die aus vielen individuell entwickelten, aber auch vielen Standardkomponenten besteht. Der Workshop zeigt zunächst systematisch, aus welchen Architekturelementen eine Webanwendung bzw. Website besteht. Für die verschiedenen Schichten werden verschiedene State-of-the-art-Alternativen vorgestellt. Diese werden schließlich in Beziehung zu unterschiedlichen Anforderungen wie Entwicklungs- und Betriebskosten, Verfügbarkeit, Konsistenz, Performance, Wartbarkeit und Investitionssicherheit gesetzt.

    Mehr lesen
  • Fantastische Formulare - Formulare endlich einfach

    Artikel Robert Glaser RailsWay Magazin 01/2010

    Formulare sind sicherlich das Stiefkind im Alltag eines Rails-Entwicklers: Felder für die verschiedenen Attribute anlegen, Standardwerte und Vorauswahlen einbauen, Fehlermeldungen und Hinweisfelder hinzufügen und letztendlich das Ganze noch in brauchbares semantisches HTML verpacken - Sie kennen das sicher zur Genüge. Das i-Tüpfelchen: Die meisten Webanwendungen sind voll von Formularen!

  • RESTful WebServices mit Ruby on Rails

    Vortrag Stefan Tilkov JAX 2009

    RESTful WebServices (als Alternative zu SOAP/WSDL/WS-*) werden immer populärer, und das Ruby-on-Rails-Framework eignet sich besonders gut für die Entwicklung von REST-Anwendungen. In diesem Vortrag wird nach einer kurzen Einführung in REST die dafür vorhandene Basisunterstützung in Rails vorgestellt, bevor auf erweiterte Mechanismen wie die Abbildung von Geschäftslogik, konditionale Requests und die Unterstützung für Caching eingegangen wird. Schließlich wird gezeigt, wie sich eine REST-/Rails-Anwendung in eine gemischte Gesamtlandschaft einfügen kann und die Mechanismen des Webs für die Anwendung-zu-Anwendung-Kommunikation per Web-API optimal genutzt werden können.

    Mehr lesen
  • WS-Testing: Über das Testen von Web Services

    Artikel Marcel Tilly, Hartmut Wilms Javamagazin 10/06

    Web Services sind nicht erst seit dem SOA-Hype ein beherrschendes Gesprächsthema in der IT-Welt. Allerorts wird neben der geradezu philosophischen Frage „Was ist ein Service?“ über das Design, die Implementierung und die Architektur serviceorientierter Systeme diskutiert. Ein Thema wird allerdings bisher eher stiefmütterlich behandelt: Wie testet man Web Services? Ob das viel gelobte Test Driven Development mit der Entwicklung von Web Services vereinbar ist und was überhaupt alles getestet werden muss, zeigen wir an einem überschaubaren Beispiel.

  • Eine gute Wahl treffen – Ein Überblick über die Web-Services-Technologien und ihre wichtigsten Standards und Spezifikationen

    Artikel Marcel Tilly, Hartmut Wilms Entwickler Magazin 3/2006

    Web Services gewinnen zunehmend an Akzeptanz und Verbreitung. Gerade im Zusammenhang mit serviceorientierten Architekturen (SOA) und Interoperabilität sind sie nicht mehr aus der Entwicklung (stark) verteilter Systeme wegzudenken. Sie werden zu Recht als prädestinierte Technologie zur Implementierung von Services innerhalb einer SOA gesehen. Was aber bildet überhaupt die Basis für Web Services? Wie werden die für Enterprise-Anwendungen notwendigen Infrastrukturdienste mit Web Services realisiert? Wie wird Interoperabilität erreicht und welche Standards und Spezifikationen existieren? Zahlreiche Fragen, die Grund genug sind, sich einen Überblick über die Web-Services- Landschaft zu verschaffen.

  • Lose Kopplung mit Web Services

    Artikel Marcel Tilly, Hartmut Wilms, Stefan Tilkov JavaSPEKTRUM 5/2005

    Für die Entwicklung und Verwendung von Web-Services existieren unterschiedliche Programmiermodelle. Diese unterscheiden sich nicht nur in Bezug auf benötigte Vorkenntnisse, Technologieunabhängigkeit und Aufwand, sondern haben auch entscheidenden Einfluss darauf, ob das hehre Ziel einer losen Kopplung von Dienstanbietern und -nutzern auch in der Praxis erreicht wird. Dem in den meisten Projekten heute eingesetzten, RPC-orientierten Ansatz wird die dokumentorientierte Variante gegenüber gestellt, dabei werden die Vor- und Nachteile beleuchtet.

  • Das Webframework Tapestry

    Artikel Oliver Tigges, Ludger Springmann JavaSpektrum 01/2005

    Tapestry ist ein komponentenorientiertes Webframework, das eine saubere Umsetzung des MVC-Patterns (Model View Controller) abbildet. Nach einer technischen Übersicht über Tapestry folgt ein Erfahrungsbericht über dessen erfolgreichen Einsatz in einem Softwareprojekt im Bankenumfeld.