16
1 Enterprise Java, Services und Systemintegration http://www.frotscher.com [email protected] @thfro Java EE – Quo Vadis? Vorstellung Software-Architekt, Entwickler und Trainer Fachliche Schwerpunkte Enterprise Java APIs und Services Kommunikation und Systemintegration Kundenspezifische Inhouse-Schulungen (Co-) Autor mehrerer Bücher & zahlreicher Artikel Sprecher auf internationalen Konferenzen © 2017 Thilo Frotscher 2

Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

1

Enterprise Java, Services und Systemintegration

http://www.frotscher.com [email protected]@thfro

Java EE – Quo Vadis?

Vorstellung

• Software-Architekt, Entwickler und Trainer

• Fachliche Schwerpunkte

– Enterprise Java

– APIs und Services

– Kommunikation und Systemintegration

• Kundenspezifische Inhouse-Schulungen

• (Co-) Autor mehrerer Bücher & zahlreicher Artikel

• Sprecher auf internationalen Konferenzen

© 2017 Thilo Frotscher 2

Page 2: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

2

© 2017 Thilo Frotscher 3

Feedback

@thfro

© 2017 Thilo Frotscher 4

Historie von J2EE / Java EE

Page 3: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

3

© 2017 Thilo Frotscher 5

Java EE dominiert im Enterprise-Bereich

Quelle: RebelLabs Developer Productivity survey 2016

© 2017 Thilo Frotscher 6

2016DAS JAHR,

IN DEM WIR DEN KONTAKT (ZU ORACLE)VERLOREN

Page 4: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

4

© 2017 Thilo Frotscher 7

© 2017 Thilo Frotscher 8

Microservices mit Java EE?

Da nehme ich doch lieber gleich Spring Boot!

Page 5: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

5

© 2017 Thilo Frotscher

Spring Boot - Pro & Contra

• „De-facto Standard“

• Weite Verbreitung

• „scheint zu funktionieren“

• Spring Know-How erforderlich

• Kein offizieller Standard

• Passt daher nicht zu jedem Team / Unternehmen

9

© 2017 Thilo Frotscher 10

Gartner nennt Java EE „obsolet“

Page 6: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

6

© 2017 Thilo Frotscher 11

Initiativen aus der Community

© 2017 Thilo Frotscher 12

BEHAUPTUNG:„Java EE ist schwergewichtig.“

Page 7: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

7

© 2017 Thilo Frotscher

Java EE kann sehr leichtgewichtig sein!

• Entwicklung gegen standardisierte API

– Implementierung des Frameworks nicht in Anwendung enthalten, sondern vom Container bereit gestellt

• Weitgehender Verzicht auf 3rd-Party Bibliotheken resultiert in schnellen Builds und kleinen WARs

– nur eigene Anwendungsklassen enthalten

– reine Java EE WAR-Dateien sind typischerweise nur wenige hundert KByte groß

• Aktuelle Java EE 7 Container haben sehr kurze Startup- und Deployment-Zeiten

13

© 2017 Thilo Frotscher 14

BEHAUPTUNG:„Java EE ist nicht mehr zeitgemäß.“

Page 8: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

8

© 2017 Thilo Frotscher

Microservices mit Java EE – das geht!

• Plattform bringt technologisch alles mit

• Der Application Server ist tot –lang lebe der Application Server!

• Entwicklung auf Basis der Java EE APIs erfordert nicht zwingend auch Deployment in einem monolithischem Java EE Application Server

• Neuer Ansatz: Paketierung einer Anwendung mit „just-enough“ Application Server

15

© 2017 Thilo Frotscher 16

Was ist ein Uberjar?

uber-

prefix1. A prefixal use of uber, adverb and adjective, with the

basic meaning “over, beyond.” It is added to adjectives and nouns to form compounds ( uberstylish; uberchefs): a hyphen is sometimes used in new coinages or in any words whose component parts it may be desirable to set off distinctly (uber-luxe).

(dictionary.com)

Page 9: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

9

© 2017 Thilo Frotscher 17

Was ist ein Uberjar?

Uberjar

Defined as a JAR file that contains both your package andall its dependencies in one single JAR file.

The advantage is that you can distribute your uberjar and not care at all whether or not dependencies are installed at the destination, as your uberjar actually has no dependencies.

All the dependencies of your own stuff within the uberjarare also within that uberjar.

(stackoverflow.com)

© 2016 Thilo Frotscher

WildFly Swarm

• Anbieter: JBoss

• Basiert auf WildFly Application Server 10.1

• Ansatz:

– Application Server wurde in feingranulare Teile zerlegt

– Paketierung von Anwendungen mit den benötigtenKomponenten des Application Servers als Uberjar

– Start der Swarm-Anwendung mit java –jar

18

Page 10: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

10

© 2016 Thilo Frotscher

WildFly Swarm - Features

• Basiert auf bewährtem Application Server

• Entwickler definieren benötigte Bestandteile des Application Servers im POM der Anwendung

• Erzeugung des Uberjar mit Maven

• Eingebaute Lösung für Service Discovery(oder Einsatz externer Service Registries)

• Support für zahlreiche Lösungen und Tools, z.B.Logstash, Hystrix, Ribbon, KeyCloak, Swagger

19

© 2016 Thilo Frotscher

Payara Micro

• Anbieter: Payara (UK)

• Payara Server basiert auf GlassFish

– Drop-In Ersatz für GlassFish Open Source Edition

– 24/7 Production Support

– Vierteljährliche Releases, Bug Fixes, Patches

• Payara Micro (< 60 MB)

– Embedded Version von Payara Server

– Deployment/Ausführen von WARs an Kommandozeile

– Automatisches, elastisches Clustering

20

Page 11: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

11

© 2016 Thilo Frotscher

Payara Micro

• Ansatz

– Server-Start und WAR-Deployment in 1 Zeile

– oder: Erzeugung eines Uberjars

• Unterstützte APIs

21

Servlets, JSTL, EL and JSPs Bean Validation

WebSockets CDI

JSF Interceptors

JAX-RS JSON-P

EJB lite JBatch

JTA Concurrency Utilities

JPA JCache

© 2017 Thilo Frotscher 22

BEHAUPTUNG:„Java EE wird nicht mehr weiterentwickelt.“

Page 12: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

12

© 2017 Thilo Frotscher 23

Java EE 8 und 9 sind auf dem Weg!

© 2017 Thilo Frotscher 24

Java EE 8 und 9 sind auf dem Weg!

Page 13: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

13

• Public Review

– JSON-B 1.0

– JSON-P 1.1

– CDI 2.0

– JSF 2.3

• In Arbeit

– Servlet 4.0

– JAX-RS 2.1

– Bean Validation 2.0

– Security

© 2017 Thilo Frotscher

Java EE 8 – Aktueller Stand

25

Erhöhte Aktivität bei der Referenzimplementierung(Glassfish 5.0)

Fertigstellung von Java EE 8 möglicherweise bereitszur JavaOne 2017 (Oktober), also früher als angekündigt.

© 2017 Thilo Frotscher

MicroProfile

• Initiative von Red Hat, IBM, Tomitribe und Payara

• Java EE Profile für Microservices / Cloud

– APIs: JSON-P, CDI, JAX-RS

• Bislang nicht als Java EE Proflle standardisiert

• Road Map

– V1.1 und V1.2 in 2017

– Support für Bean Validation, JSON-B, OAuth/Open ID

• https://microprofile.io/

26

Page 14: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

14

© 2017 Thilo Frotscher

Implementierungen von MicroProfile 1.0

• WildFly Swarm

• Payara MicroProfile 1.0

– Reduzierte Version von Payara Micro

– Unterstützt ausschließlich APIs des MicroProfile

– Identische Verwendung (Kommandozeilenbefehle)

– Maven Dependency setzen oder Download von Maven Central

• Apache TomEE

• WebSphere Liberty

• Hammock

27

© 2017 Thilo Frotscher 28

MicroProfile an Eclipse übergeben

Page 15: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

15

© 2017 Thilo Frotscher

Vorzüge eines Standards

Weshalb legen viele Unternehmen hohen Wert auf den Einsatz von Technologie-Standards?

• Bewährte Technologie statt Leading Edge

• Hohe Verbreitung

• Verfügbarkeit von Know-How, Entwicklern etc.

• Herstellerunabhängkeit

• Kommerzieller Support verfügbar

29

© 2017 Thilo Frotscher

Der Wert eines Standards

30

“Java EE has been the most successful cross-vendor enterprise middleware standard we've ever known;

of course it's not perfect; of course there have been a number of iterations required to improve its

applicability to an ever evolving set of use cases.

But warts and all, Java EE implementations such as EAP have been deployed widely across the globe and

sit at the heart of many of the mission critical environments we take for granted, such as banks,

hospitals, air traffic control systems.”

Marc Little, JBoss CTO

Page 16: Java EE –Quo Vadis? - Entwicklertag...2 © 2017 Thilo Frotscher 3 Feedback @thfro © 2017 Thilo Frotscher 4 Historie von J2EE / Java EE

16

© 2017 Thilo Frotscher

Fazit

• Java EE bleibt eine sehr gute Wahl zur Implementierung neuer Anwendungen

• Entscheidung, die jeder selbst treffen muss:Standard vs. Leading Edge

• Weiterentwicklung der Plattform ist im Gange,Planung geht über die nächste Version hinaus

• Hohes Engagement aus der Community

• Sehr gute Verfügbarkeit von Know-How undEntwicklern in Deutschland

31

Thilo Frotscher

Kundenspezifisches Training und Beratung zu Enterprise Java, Services & Systemintegration

[email protected]

@thfro

© 2017 Thilo Frotscher 32