java ee –quo vadis? - entwicklertag...2 © 2017 thilo frotscher 3 feedback @thfro © 2017 thilo...
TRANSCRIPT
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
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
4
© 2017 Thilo Frotscher 7
© 2017 Thilo Frotscher 8
Microservices mit Java EE?
Da nehme ich doch lieber gleich Spring Boot!
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“
6
© 2017 Thilo Frotscher 11
Initiativen aus der Community
© 2017 Thilo Frotscher 12
BEHAUPTUNG:„Java EE ist schwergewichtig.“
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äß.“
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)
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
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
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.“
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!
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
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
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
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
@thfro
© 2017 Thilo Frotscher 32