Oracle plans to fit Java EE 8 with capabilities for persisting data in a key-value store, based on NoSQL stores, and a transaction model for eventual consistency and relaxed transactions. On the whole, Oracle's improvements would help Java EE developers evolve their skill sets to leverage technology shifts such as these, Kurian said.
Other key Java EE improvements
The next iteration of Java EE will also include improvements aimed at multitenancy in cloud environments. Multitenancy enables applications from multiple companies or departments to be hosted on the same shared infrastructure. By providing greater density in packing applications on a common infrastructure, multitenancy reduces the cost of infrastructure, Kurian said. “Today, Java EE does not have a formalized model for app developers on how an app server can provide multitenancy.”
Java EE will likely also receive security improvements, Kurian said. The existing specification primarily deals with authentication and authorization. But on public clouds and in the enterprise, new authentication models are emerging, such as OAuth and OpenID Connect. “Today, there is no formalized model within Java EE 8 on how you receive these open standard token formats for authentication [of] users, propagating identity and providing better interoperability between applications from a security point of view.”
Java EE’s current configuration model, covering application servers and application deployments on top of them, is getting old, Kurian explained. That model can be improved via technologies such as Docker and other container technologies, which offer simplicity and work well with cloud deployments. Containers would make use of immutable configuration, externalizing the process from within application servers. Configuration changes would then be made via a configuration service.
Also on the drawing board is a better model for reactive programming. “Java EE does not have a very elegant model for how you do a reactive style of programming,” Kurian said. For example, Java EE lacks a single event model across the stack, instead supporting multiple event frameworks. Reactive programming is needed for building large-scale distributed systems, which are built asynchronously, are loosely coupled, and are event-based, he said.
Based on Oracle’s new plan, Java EE 8 would have stronger support for HTTP/2 than originally intended, said Kurian. “The current proposal in our view doesn’t go all the way to what Java EE 8 should do with supporting async communications over HTTP/2.”
Oracle also envisions that new applications will be written in a microservices design, with applications designed as modular services. “We believe that’s another element of what should be in Java EE longer term,” Kurian said. Asked whether Oracle’s microservices intentions would negate the work considered by MicroProfile.io, Kurian said Oracle would like to see convergence around a single specification for using microservices within Java EE. MicroProfile.io, which features involvement from IBM and Red Hat, is preparing an enterprise Java microservices platform that includes JAX-RS, CDI, and JSON-P.
Sign up for Computerworld eNewsletters.