Oracle is listening. In the JavaOne keynote on Sunday, Anil Gaur, Group Vice President of Engineering
There has been a tense period of uncertainty about the fate of Java EE from the Java community. This is due to the observation that there was a marked slowdown in development on Java Specification Requests (JSRs) on Java EE 8. In April 2016, blogger Josh Juneau noted:
“For anyone who pays close attention to Java EE, it has become clear in the past six months that there has been a decline of activity.”
Several community members started a group, the Java EE Guardians, to pressure Oracle into committing to Java EE.
Oracle is listening
Despite the delays, the key message from Anil Gaur was, we are listening to the community: “We have a very well defined plan for Java EE 8 and Java EE 9.”
The proposed next stage for Java EE is ‘New AppDev Style for cloud and microservices’. This is a response to the new challenges developers face, such as the move to the Cloud, the shift to virtual infrastructure, run time packaged with applications and the microservices vs monolithic application debate.
Specifically, the platform needs to evolve to solve the requirement for ‘just enough run time’ and be flexible enough to be scaled horizontally.
In order to do this, some of the changes suggested are:
- Change the programming model so support reactive programming, and build a unified event model (so there will be an event messaging API).
- Bring in the benefits of JAX-RS, HTTP/2, Lambda, JSON-B.
- Aim for eventual consistency to automatically event out changes to observed data structures.
- Bring in a key/value document store as more people are using key/value pairs for simple data structures and documents.
- Focus on security: especially when working in the hybrid cloud, secret management is more important. OAuth and OpenID are gaining traction so will be supported.
In order to scale horizontally, Gaur suggests that we can’t afford to have state tied to service. APIs need to manage configuration / state so it can be stored in an external set of service. It follows that resilience is also crucial, with any failures contained and isolated.
With the shift towards multitenant deployment in containers, Java EE will package applications and run times into containers. This ties in nicely with the keynote announcement of George Saab, Vice President of Development for the Java Platform Group at Oracle. Saab announced that Oracle JDK will be distributed with Docker, which will “make Java a first class citizen with Docker”.
To package run times into containers, configuration will be separated from packaging. It will be possible to package more than one artifact, leveraging some Java SE features such as modules to move towards ‘just enough run time’.
Severless development is gaining more and more popularity. Gaur: “As a developer – you shouldn’t need to know about run time.” The concept of severless development will be introduced and hopefully it will grow from there.
In order to facilitate multitenancy, Java EE will have the notion of a ‘tenant ID’ in the system. It will have a unified way of propagating it through the system.
Anyone waiting for the already delayed Java EE 8 will not be surprised to hear that not all of these proposals are scheduled for the next release.
As for Java EE 8, the darker boxes represent JSRs that are undergoing enhancements (Bean Validation, Servlet, CDI, JSF, JAX-RS, JSON-P). JSON-B and Security are going to be added to EE 8 and will continue to be invested in. Configuration and Health Check are new.
In terms of the roadmap, Java EE 8 will hopefully be released at the end of 2017. Work on Java EE 9 should start straight away.
This is a proposal, which needs to go through the community and expert groups before JSRs are created. Oracle will open a community survey for the proposals and feedback. Keen to show they really are listening, Gaur invited several ‘elite partners, customers and communities’ on stage to provide immediate feedback. The community members included engineers from CERN, Fujitsu, Gluon and others.
The consensus on stage was that the move is in line with larger business requirements. However it is ambitious for the timeframe.
Java champion Arun Gupta is waiting to see what happens when things get started: “Delivery of this roadmap is going to be key, particularly in a new cloud-centric way instead of traditional download-and-install.”
It will be interesting to see if the proposals meet the requirements of the Java EE Guardians. Whether this is enough to lessen their fears remains to be seen, but Gaur’s final message was clear:
“Community members – you have to help us.”