These are exciting times for the Java community! EclipseCon France (ECF) 2018, the first ECF since Oracle contributed Java EE to Eclipse Foundation, surely reflected that. The Jakarta EE brand, now firmly accepted by the community, received heightened visibility at ECF via a track dedicated to Jakarta EE and related technologies. The MicroServices, MicroProfile, EE4J, & Java EE track included talks related to cloud native application development using the MicroProfile programming model, EE4J and Jakarta EE (Java EE) technologies. Topics included: how to build a fault tolerant microservice, how to monitor and trace the service invocations, how to secure microservices, best practices, and more. Based on session attendance and community feedback it is clear interest in Jakarta EE, MicroProfile and Microservices is high and growing.
The talks varied from a beginner to advanced level and were given by well known Java developers, open source project committers and community leaders. It was a fabulous opportunity to meet Java enthusiasts seeking community involvement and looking forward to contributing to the success of Jakarta EE for Cloud application development.
Here are some highlights from talks and presentations.
Cloud-Native Application Development
(based on RedHat presentation, Thomas Qvarnstrom, Cesar Saavedra)
In the case you are wondering what exactly is cloud-native application development, please refer to the great presentation from RedHat. It will give you answers on what changes are required from development and deployment perspective. This also means you’ll get pointers for architectural and organizational changes needed when developing cloud-native applications.
As we know “a picture tells a thousand words”, so here is the slide from the presentation that describes it all
Development assumes Service-based architecture with API-driven communication
Deployment is done using containers infrastructure and DevOps process (continuous integration and ongoing deployment, tight collaboration between teams)
If you are wondering how different are Traditional from Cloud-Native Application Development is, again, one of the slides from the same presentation sums it up.
And finally, if you would like to develop cloud native applications here are steps you need to follow
Evolve Cloud Native DevOps practices and culture (take advantage of new tech, faster approaches and tighter collaboration)
Speed up existing applications (migrate app server to container-based platform)
Use Application Services optimized for cloud and containers
Choose right tool for right task - Multiple runtimes and frameworks
Self-Service On-Demand Infra (allow developers to access infra when they need it with IT Ops control & visibility)
Automate it to accelerate delivery (Integrated full-scale enterprise-wide automation)
Implement Continuous Delivery, Integration and Deployment (CD/CI) - to provide updates w/o operational capacity & reduced risk
Evolve a more modular architecture - Microservices Architecture and its alternatives
(Based on MicroProfile presentation, Ivar Grimstad)
Enterprise Java technologies like Java EE have evolved for nearly two decades to support distributed application architectures. The MicroProfile is the next step in that evolution and it is optimizing Enterprise Java for a microservices architecture.
Eclipse MicroProfile is an open-source community specification for Enterprise Java microservices, that is engaging individuals, organizations, and vendors collaborating within an open source (Eclipse Foundation) project.
The slide below shows how MicroProfile (an early release) relates to Java EE.
Popularity and expansion of the profile in last two years (since the first release Sept 2016) is gaining a major momentum in the Java community. MicroProfile since then evolved and the current release Eclipse MicroProfile 2.0 specification looks like this
Who are MicroProfile implementers?
(based on IBM presentation, Kevin Sutter)
This talk provided a great overview of the status of the EE4J project set up to evolve the Java EE technologies contributed by Oracle to the Eclipse Foundation into the Jakarta EE platform.
The following material is being moved from Oracle to the Eclipse Foundation
Java EE 8 Specifications
Java EE 8 APIs
Java EE 8 RIs
Java EE 8 TCKs
Progress on the code move to Eclipse Foundation can be viewed here.
The first Jakarta EE release is expected late 2018. The first Jakarta EE release will be equivalent to Java EE 8 platform.
There are additional changes taking place as well! Here are some of the highlights:
Oracle’s Java Community Process (JCP) [for Java EE only] is in going to be changed by the Jakarta EE Working Group.
Key Benefits of the Jakarta EE Working Group
- Vendor Neutral
- Open Intellectual Property Flows
- More Agile and Flexible
Specification development approach change
- JCP specification development was based on specification development first, then code based on the specification
- Jakarta EE Working Group is proposing the reverse - Code development first and, then specification based on the code…
Oracle’s Java Specification Request (JSR) will be replaced by Eclipse Foundation Specification Process
Eclipse Foundation Licensing
MicroProfile and Java EE
MicroProfile1.4 (Java EE 7)
• Config 1.3 • Fault Tolerance 1.1 • JWT 1.1 • OpenTracing 1.1 • Rest Client 1.1
MicroProfile2.0 (Java EE 8)
• CDI 2.0 • JAX-RS 2.1 • JSON-P1.1 • JSON-B1.0 • (Common Annotations 1.3)
There is a lot of enthusiasam about revitalizing and modernizing the old Java EE specification and JCP process. It is refreshing to see the excitement and interset about the work already done, and furthermore the work being laid out for Jakarta EE - the cornerstone Cloud-native Application Development, as continuation of the success Java EE, once had in (monolithic) on-premise application development.
Lastly, much thanks to all community members and our sponsors that made the event extremely memorable and possible. Looking forward to seeing many of you at EclipseCon Europe. See you all very soon. Shout out to Emily Jiang, IBM, chair of the MicroServices, MicroProfile, EE4J, & Java EE track and all the session contributors.