Artikel

Artikel

Micro-Cloud mit Cloud Foundry

Einer der Plattformdienste

Artikel

Offene Daten vernetzen

Von der akademischen Spielwiese in die praktische Realität

Artikel

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.

Artikel

Early-Design Reviews

Whitepaper zu Architektur-Reviews

Artikel

Rubies are forever

Ruby 2.0 als Geschenk zum 20. Geburtstag

Artikel

Geschäftsprozesse vom Fließband

Während in Java-Projekten ein automatisierter Build heutzutage Standard ist, wird dies in Projekten, die auf BPEL oder BPMN aufsetzen, oftmals versäumt. Die Modellierungsumgebungen, wie in unserem Fall ActiveVOS, bieten nur rudimentäre Unterstützung für Build-Werkzeuge. Zudem gilt es viele Abhängigkeiten zu WSDL- und Schemadateien zu verwalten, die nicht in Maven, sondern in anderen Repositories versioniert sind. Wir stellen die Projektstruktur vor, die sich im Laufe unseres Projekts entwickelt hat und die es uns erlaubt, automatisiert alle Projektartefakte inklusive unserer ausführbaren Geschäftsprozesse zu paketieren und zu verteilen.

Artikel

Java – Funktional ohne Zauberei

Totally Lazy

Artikel

Apache Buildr

Die Mavenalternative?

Artikel

ROCA

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.

Artikel

Eine Lanze für XML brechen

Java spricht

Artikel

Wider Betonköpfe und Freigeister

Entwicklung und Betrieb verzahnen mit DevOps

Artikel

BPMN und Camel

BPMN2 erfreut sich wachsender Beliebtheit und wird BPEL als Standard zur Modellierung ausführbarer Geschäftsprozesse langfristig ablösen, nachdem es bereits mit BPMN 1.x zum Standard für die fachliche Modellierung aufgestiegen war. Ausführbare Geschäftsprozesse sind dabei so detailliert und formal beschrieben, dass sie von einem Computer mittels eines Business Process Management Systems (BPMS) interpretiert, ausgeführt und analysiert werden können.

Artikel

Auf Nummer sicher

Testen von ausführbaren Geschäftsprozessen

Artikel

Java-Programme mit Clojure würzen

Doppelplusgut

Artikel

Neo4j – Eine graph-basierte transaktionale Datenbank

Während die Kolumne von Michael Hunger in dieser Ausgabe den Aufbau von Neo4j und deren Performance genauer betrachtet, wollen wir uns diese Graphdatenbank aus der Perspektive des Anwendungsentwicklers, des „Praktikers”, anschauen. Um es mit den Worten des Amazon-CTOs Werner Vogels zu sagen: „Für alles, was mehrere Beziehungen und Verbindungen hat, rockt Neo4j total.“ 1

Artikel

Webanwendungen mit dem Play!-Framework

Wie man in Java Webanwendungen bauen sollte

Artikel

Testobjekt: Geschäftsprozess – Testen für kontinuierliche Verbesserung

Geschäftsagilität durch Tests sichern

Artikel

Domain Specific Languages

In den letzten Jahren hat es sich eingebürgert, bei domänenspezifischen Sprachen zwei Varianten zu unterscheiden: interne und externe. Dabei gewinnen interne DSLs insbesondere durch die steigende Popularität dynamischer Sprachen zunehmend an Bedeutung.

Artikel

OpenShift Express

Java EE in der Cloud

Artikel

Die Welt der Dinge in deiner Hand

openHAB als Integrationsplattform im IoT

Artikel

„Infrastructure as Code“ mit Chef

Ein typischer erster Arbeitstag in einem neuen Projekt: Es handelt sich um ein ganz „gewöhnliches“ Java-EE-Projekt. Ich bekomme Zugangsdaten für eine Versionsverwaltung und ein Wiki-System. Ich habe Glück, der Code lässt sich sofort bauen. Nun würde ich meine nagelneuen Artefakte gerne deployen und in Aktion sehen. Das bedeutet zunächst: Wiki-Seiten wälzen. Dort finde ich Verweise auf den verwendeten Application-Server und Fragmente für die Konfiguration. Ich wühle mich also durch die Downloadseiten des Herstellers, um die korrekte Version zu finden, und editiere dann die Konfigurationsdateien. Für die verwendete Datenbank bekomme ich vom Kollegen ein Image für eine Virtualisierungssoftware. Allerdings, so warnt er mich, müsse ich einige Schemaänderungen noch per Hand nachpflegen. Etwas später habe ich die Migrationsskripte gefunden und führe sie aus. Per Hand deploye ich die neuen Artefakte und es entstehen merkwürdige Fehler. Die Fehlersuche mit dem Kollegen offenbart, dass ich noch einige obligatorische Verzeichnisse anlegen muss und die Konfigurationsdateien aus dem Wiki nicht ohne Änderungen zu der Datenbank im Image passen. Schlussendlich bin ich in der Lage, das Projekt zum Laufen zu bringen. Aber ob mein System wohl identisch mit dem des Kollegen ist? Oder der Testumgebung? Oder der Produktion? Und mit wie viel Aufwand für den Aufbau einer weiteren Staging- Umgebung muss man rechnen?

Artikel

Hype oder hilfreich?

Was wir von Lean-Start-ups lernen können

Artikel

Quality Driven Software Architecture

Mit Fokus auf Qualität bessere Software schaffen

Artikel

Clojure — in der Praxis?

Von Andy Hunt und Dave Thomas stammt der Rat, jedes Jahr eine neue Programmiersprache zu lernen, um nicht einzurosten. Und die Anhänger dieser Philosophie können sich zur Zeit glücklich schätzen: An neuen oder wiederentdeckten Programmiersprachen herrscht wirklich kein Mangel. Die große Mehrheit der Entwickler jedoch steht dem Thema deutlich skeptischer gegenüber. In diesem Artikel wollen wir am Beispiel von Clojure näher beleuchten, welche Gründe es gibt, sich mit neuen Programmiersprachen auseinanderzusetzen. Viele der Argumente sind Clojure-spezifisch, andere lassen sich auch auf andere Sprachen übertragen, insbesondere wenn diese — wie JRuby, Scala oder Groovy — auch auf der JVM lauffähig sind. Vorab: Natürlich gibt es diverse Nachteile, die ganz allgemein mit der Einführung einer neuen Sprache zusammenhängen, und jede Sprache hat auch ihre eigenen spezifischen Schwächen. Diese blenden wir in den nächsten Absätzen einfach einmal aus. Denn erstens kennen Sie diese Nachteile wahrscheinlich schon und zweitens ist unsere Motivation natürlich völlig klar: Wir sollen Sie motivieren, neue Sprachen ernstzunehmen und nicht zu ignorieren. Nachdem die „hidden agenda“ nun nicht mehr so versteckt ist, auf ans Werk!

Artikel

NoSQL - Einsatzgebiete für die neue Datenbank-Generation

Sie haben die Wahl!