Blog & Articles

Article

Warum Soft Skills für Softwarearchitekten wichtig sind

Der Projekterfolg hängt viel stärker von den am Projekt beteiligten Menschen und den Rahmenbedingungen ab als von den eingesetzten Technologien. Erfolgreiche Projektleiter und Softwarearchitekten haben ein Gespür für die Menschen, mit denen sie Projekte machen, und erreichen mit ihnen gesteckte Ziele. Was erfolgreiche Anführer gemein haben, worauf es in der Zusammenarbeit ankommt und wie man selbst so etwas erlernen kann, stellt dieser Artikel vor.

Article

Ceylon auf der JVM und node.js

Ceylon ist da! Eine neue Programmiersprache die sowohl im Java- als auch im JavaScript-Ökosystem zu hause ist. Ceylon möchte mit Klarheit, Modularisierung und einem ausgefeilten Metamodell punkten. Anvisiert ist der Einsatz in großen Softwareprojekten. In diesem Artikel werfen wir einen Blick in die Konzepte und schauen uns die Sprache an, welche vor kurzem das Licht der Welt erblickt hat.

Article

Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

Article

Hystrix – to make your fuse blow just in time

Circuit breakers were originally introduced to prevent the escalation of an outage. If your fuse blows occasionally, that does not have to be a bad thing - at least if it is a circuit breaker in the sense of Hystrix. In this article we will introduce you to Hystrix, a library which will help you to increase the stability of your distrubted applications and which will help to prevent cascading error scenarios.

Article

Zertifizierung für Fortgeschrittene

Wer sich als Softwareentwickler oder Softwarearchitekt stets auf dem Laufenden hält, bleibt auch langfristig attraktiv für den Arbeitsmarkt. Das erfordert genauso fundierte Kenntnisse gängiger Technologien und Frameworks wie methodische Fähigkeiten. In diesem Beitrag stellen wir das modulare Curriculum für fortgeschrittene Softwarearchitekten des iSAQB e.V. vor, das verschiedene notwendige Kompetenzbereiche für Softwarearchitekten abdeckt.

Article

Micro-Services in Java realisieren – Teil 1: Leichtgewichtige Web-Apps mit DropWizard

Micro-Services wider Monolithen

Article

Hystrix – Wider den Totalausfall

Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

Article

Software systematisch verbessern

Die Informatik-Ausbildung fokussiert auf die Neuentwicklung von Software – den Alltag vieler Softwerker prägen jedoch meist Pflege, Änderung oder Erweiterung von Systemen. In diesem Artikel stelle ich Ihnen aim42 vor, ein systematisches Vorgehen zur Verbesserung von Software. aim42 ist frei verfügbar und kondensiert Praktiken und Patterns rund um Evolution, Änderung und Wartung von IT-Systemen.

Article

Skalierbare Softwaresysteme

Vom Entwickler-Notebook bis zur Serverfarm

Article

Domain-Driven Design in Clojure

In diesem Artikel setzen wir die Prinzipien des Domain-driven Designs mit Clojure um. Wir stellen die Domäne Rating als Beispiel vor und demonstrieren strategisches sowie taktisches DDD. Wir zeigen, wie sich das Domänenmodell in Clojure implementieren lässt.

Article

openHAB auf dem Raspberry Pi

Nachdem openHAB auf der diesjährigen JavaOne einen der begehrten Duke’s Choice Awards gewonnen hat, möchten wir die Gelegenheit nutzen, diese quelloffene Lösung für die Do-It-Yourself-Heimautomatisierung vorzustellen. Das Framework openHAB sollte auf praktisch jedem Rechner funktionieren, der eine JVM und OSGI-Runtime ausführen kann. Wir stellen das Open-Source-System im Folgenden an einem kleinen Beispiel vor.

Article

GOTO 2013 Berlin

innoQ Mitarbeiter über ihre persönlichen Highlights der Konferenz

Article

Versionsmanagement auf dem Tanker

In verschiedenen großen Projekten mit festen Releasezyklen hat der Autor bestimmte Situationen ganz ähnlich mehrfach erlebt. Dieser Artikel berichtet von typischen Herausforderungen aus Versionsmanagement-Sicht, die sich in solchen Situationen ergeben und von praxiserprobten Möglichkeiten, sie zu meistern.

Article

Reactive Extensions in Java

Reactive Programming ist ein datenflusszentriertes Programmierparadigma. In objektorientierten Programmiersprachen ermöglicht das Observer-Muster den Datenfluss entgegen der gewünschten Aufrufabhängigkeiten: Von einem Subjekt abhängige Beobachter werden automatisch über Änderungen dieses Subjektes informiert und können den aktuellen Zustand erfragen. Mit Reactive Extensions wird das Paradigma so ergänzt, dass sich leicht die parallele Verarbeitung von Daten implementieren lässt.

Article

Large Scale Business Process Integration

Zwischen Grundbüchern, Banken und Notaren – Erfahrungen und Herausforderungen

Article

ROCA: Keine Angst vor HTML und JavaScript

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.

Article

Use-Case-Puzzeln für Fortgeschrittene

Das aktuelle Umfeld in vielen Unternehmen ist sehr dynamisch und herausfordernd. Dieser Trend wird sich aufgrund des wirtschaftlichen Rahmens eher verstärken denn abnehmen. Dies merken auch die Softwareprojekte, die oftmals bestehende Geschäftsprozesse durch Softwarelösungen unterstützen müssen, wobei die notwendigen Umgestaltungen im Geschäftsprozess oftmals noch nicht bekannt sind. Dabei reicht die Bandbreite von punktueller Unterstützung durch „einfache“ Anwendungssysteme bis hin zu einer End-to- End-Automatisierung mittels BPMN2 oder BPEL. Unabhängig vom Scope und der Implementierungstechnik müssen Requirements Engineers in solchen Projekten jedoch auch Geschäftsprozesse verstehen und modellieren, um Anforderungen für die Software formulieren zu können.

Article

Hypermedia as the Engine of Application State – Spring Hateoas

RESTlos glücklich

Article

Log-Daten effektiv verarbeiten mit Apache Kafka

Mit Apache Kafka stellen wir ein ungewöhnliches Messaging-System vor. Es besticht durch persistente Speicherung der Nachrichten, hohen Transaktionsdurchsatz und gute Skalierbarkeit. Kafkas Architektur ermöglicht dadurch nicht nur den Einsatz in Online-Szenarien mit zeitnaher Verarbeitung, sondern auch in Offline-Szenarien mit stark zeitverzögerter Verarbeitung von Nachrichten. Dieser Beitrag demonstriert, wie Kafka auch mit großem Log-Aufkommen zurecht kommen kann.

Article

Offene Daten vernetzen

Dieser Beitrag untersucht die „Linking Open Data“ Bewegung des World Wide Web und verwandte Ansätze. Der Begriff „offen“ hat einerseits ethische und juristische Dimensionen, wird hier aber vor allem in seinen technischen Konsequenzen untersucht. Erst die Verwendung offener Standards und die detaillierte Vernetzung aller Datenbestände führen zu einer „globalen Datenbank“, die zunehmend auch außerhalb der akademischen Welt eine ernst zu nehmende Rolle spielt.

Article

Micro-Cloud mit Cloud Foundry

Einer der Plattformdienste

Article

Im Web zu Hause

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.

Article

Early-Design Reviews

Sie erfahren in diesem Whitepaper, wie Kunden der innoQ in unterschiedlichen Projektphasen von der Umsetzungs- und Architektur-Expertise von innoQ profitiert haben. Sie lernen die notwendigen Voraussetzungen für erfolgreiche Review-Projekte kennen.

Article

Geschäftsprozesse vom Fließband

Continuous Integration für automatisierte Geschäftsprozesse mit Maven und Jenkins

Article

Apache Buildr

Die Automatisierung der Buildprozesse ist eine feine und wichtige Sache. In der Regel freut man sich, wenn ein Projekt Apache Maven verwendet und man dank der Konvention das Projekt sofort bauen kann. Doch mit der Zeit stellt sich in der Regel Ernüchterung ein. Der Build schlägt plötzlich fehl, weil ein Artefakt nicht mehr in den bekannten Repositories gefunden werden kann, die Ergebnisse sind nicht exakt reproduzierbar oder für eine kleine Erweiterung des Prozesses müssen erst aufwendig Plug-ins entwickelt und verteilt werden. Muss das so sein? Apache Buildr hat sich zu einer mächtigen Alternative entwickelt, in dem es den deklarativen Ansatz von Maven mit dem imperativen einer Skriptsprache kombiniert.