W-JAX-Countdown mit Mike Wiesner

Spring heute – wo liegen die Unterschiede zu Java EE?

Hartmut Schlosser
Mike Wiesner

Wer Spring einsetzt, entscheidet sich damit nicht automatisch gegen Java EE, sagt Mike Wiesner, Principal Technical Instructor bei Pivotal und Speaker auf der anstehenden W-JAX 2014 (3. bis 7. November). Wie sich Spring in den letzten Jahren entwickelt hat, wo heute der Unterschied zu Java EE liegt und was es mit dem Projekt Spring XD auf sich hat, erklärt uns Mike in dieser Folge des W-JAX-Countdown.

JAXenter: Das Spring Framework hat ja bei Pivotal unter der Spring.IO-Plattform sein Zuhause gefunden. Würdest du sagen, dass sich damit auch der Fokus verändert hat? Oder anders gefragt: Spring vor 5 Jahren, Spring heute wo liegen die Unterschiede?

Mike Wiesner: Meiner Meinung nach ist das Ziel des Spring Frameworks, die Enterprise-Java-Entwicklung zu vereinfachen, stets gleich geblieben. Das Themenspektrum hat sich aber verändert. Vor 5 Jahren waren die großen Themen bei Spring, ein effektives Komponentenmodell durch Dependency Injection und AOP auf Basis von Annotationen bereit zustellen. Heute ist das Themenspektrum viel breiter geworden und deckt zum Beispiel Dinge wie NoSQL und BigData ab. Das einfache Komponentenmodell steht aber immer noch im Mittelpunkt und wird auch stetig weiter entwickelt.

Der Fokus hat sich also nicht verändert, es geht immer noch darum, die Java-Entwicklung zu vereinfachen. Da sich aber die Ansprüche an ein Enterprise-Java-Projekt verändert haben, hat sich natürlich auch das Spring-Ökosystem verändert und daran angepasst.

Durch die Vielzahl der Themen wurden diese nicht alle in das Spring Framework selbst eingebaut, sondern einzelne Projekte gestartet, welche sich gezielt um ein Problem kümmern. Die Spring-IO-Plattform fasst diese Projekte nun alle zu einer modularen Plattform zusammen, sodass man sich nicht mehr um einzelne Versionen und deren Kompatibilität kümmern muss.

JAXenter: Wie würdest du Spring – bzw. muss man eher sagen das Spring Ökosystem – heute gegenüber Java EE abgrenzen?

Mike Wiesner: Ich sehe den Hauptunterschied vor allem durch das bereits angesprochene größere Themenspektrum. Die Spring-IO-Plattform bzw. deren einzelne Projekte bieten nicht nur Unterstützung für Kernthemen wie JDBC, JPA oder JMS, sondern auch zu Technologien wie Cloud Computing, MongoDB, Hadoop, Micro Services, Enterprise Integration Patterns, Data Ingestion, Data Analytics und vielem mehr.

Dies muss jedoch keine Entscheidung gegen einen Java EE Application Server sein, denn nahezu alle Spring-Projekte können in einem Java EE Application Server verwendet werden und dessen Infrastruktur nutzen. Mit Spring kann man also auf einen bestehenden – auch älteren – Java EE Application Server deployen und aktuellste Spring-Funktionalität auf der dortigen Infrastruktur nutzen, aber auch eine Anwendung komplett ohne Application Server betreiben, zum Beispiel mit Spring Boot.

JAXenter: Du stellst auf der W-JAX Spring XD vor. Worum handelt es sich dabei?

Mike Wiesner: Spring XD steht für Spring eXtreme Data und ist kurz gesagt der One-Stop-Shop für Big Data. Es basiert auf bestehenden Frameworks wie Spring Integration, Spring Batch und Spring Data und integriert dadurch Technologien wie Apache Hadoop, Datenbanken, Streams und vielem mehr. Es kann dabei als Data Ingest Tool eingesetzt werden, um zum Beispiel Daten aus Messaging-Systemen (JMS, AMQP) in Hadoop zu speichern.

Es kann aber auch als Runtime für Batch-Aufträge verwendet werden oder für Realtime Analytics. Zusammen mit Hadoop kann es Tools wie Flume, Sqoop oder Oozie ersetzen, ist dabei aber nicht beschränkt auf Hadoop und dadurch deutlich flexibler als diese Tools.

JAXenter: Kannst du mal ein Real-World-Beispiel aus der Praxis beschreiben, in dem Spring XD eingesetzt wird?

Mike Wiesner: Überall wo Massendatenverarbeitung erfolgt fehlen häufig die Bindeglieder zwischen den einzelnen Datenspeichern. Genau dies sind die Einsatzbereiche von Spring XD. Mögliche Einsatzszenarien wären im Internet of Things, wie die (nahezu) Echtzeitverarbeitung von Sensordaten und daraus generierten Vorhersagemodellen. Eine Demo zu diesem Thema kann man hier finden: http://bit.ly/XD-CAR.

JAXenter: Wie arbeiten Spring XD und Apache Hadoop 2.x technisch zusammen?

Mike Wiesner: Die HDFS-Integration erfolgt entweder Stream-basiert über Spring Integration oder Batch-basiert über Spring Batch. Das Starten eines Map-Reduce-Auftrags erfolgt über Spring Batch, welches wiederum Spring Hadoop verwendet. Dadurch werden auch alle großen Hadoop-Distribution wie Pivotal HD, Cloudera und Hortonworks unterstützt.

Als Spring-XD-Benutzer muss man sich um dies Details jedoch nicht kümmern. Eine Stream-Definition, welche jede Sekunde die aktuelle Uhrzeit nach HDFS speichert, sieht so aus: „stream create –name myhdfsstream –definition „time | hdfs“ –deploy“

JAXenter: Worum wird es in deiner W-JAX Session gehen?

Mike Wiesner: Es wird darum gehen, die Einsatzgebiete der verschiedenen Tools (Spring Integration, Spring Batch, Spring XD, Apache Hadoop) zu erläutern. Es wird natürlich auch eine kurze Einführung in die Tools geben, aber vor allem soll es um die Einsatzgebiete gehen.

In unseren Trainings stellen wir immer wieder fest, dass genau hier eine Informationslücke besteht und deswegen das falsche Tool für den falschen Zweck eingesetzt wird. Ein Beispiel für einen falschen Einsatz wäre Spring Integration für einen Massendatenimport.

JAXenter: Wie geht es weiter mit Spring XD. Welche Neuerungen sind in den nächsten Monaten geplant?

Mike Wiesner: Viele Neuerung werden auf dem Feedback der Version 1.0 basieren, geplant ist aber schon, die Web-Anwendungen (UI) zu verbessern, das Module Deployment zu vereinfachen sowie verschiedene Sicherheits-Erweiterungen zu implementieren. Die Version 1.1 wird Anfang 2015 erwartet.

Mike, vielen Dank für dieses Interview!

Mike Wiesner hat über zehn Jahre Erfahrung im Enterprise-Java-Bereich, sowohl als Entwickler als auch als Consultant und Trainer. Er ist ebenfalls an der Entwicklung von Spring Security beteiligt und ist regelmäßig auf verschiedenen Konferenzen anzutreffen. Zusätzlich veröffentlicht er Artikel über Application Security und Spring Best Practices. Er arbeitet derzeit als Principal Technical Instructor für Pivotal und ist der Projektleiter für den Enterprise Integration with Spring Kurs. 

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. SEO und KPIs isst er zum Frühstück. Satt machen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: