Java EE developers are now experimenting with microservices and they need a coherent way to optimize their development efforts. Over the years, Java EE has supported distributed application architectures based on RMI/IIOP, Web Services and REST. The Eclipse MicroProfile project is the next step in that evolution because it optimizes enterprise Java for a microservices architecture.
“The cadence of Java EE is slowing,” said John Clingan, senior principal product manager at Red Hat. “It was introduced as a yearly cadence, but it slowed from two years to three years and now it has a four-year cadence. Microservices are evolving at a much faster pace, so the Java EE community needs a way to bridge the gap.”
Before MicroProfile, Java EE implementations were experimenting with microservices across many separate projects including WildFly Swarm, WebSphere Liberty, Payara, and TomEE. Since the efforts were similar, the community formed MicroProfile to collectively deliver APIs and a portable platform optimized for microservices.
The goal of MicroProfile is to balance the benefits of open collaboration, open source and standards. Toward that end, the MicroProfile initiative was introduced at the Red Hat DevNation in June 2016. Version 1.0 became available three months later. MicroProfile 1.0 comprises three technologies including JAX-RS, which enables the development of RESTful applications with Java EE; Context Dependency Injection for Java EE (CDI) which is a component model for enterprise Java; and JSON-P.
In December 2016, MicroProfile became an Eclipse project so it could remain vendor-neutral and benefit from the formal processes Eclipse established such as governance. The project is being actively evangelized by committers and non-committers publicly at conferences and user group meetings, and in social media.
How MicroProfile is evolving
The MicroProfile roadmap is currently in the works with availability for MicroProfile 1.1 planned for Q2 2017. It includes a configuration API which externalizes a configuration from its microservice, and other features will roll into MicroProfile 1.1 and beyond as they are ready, like fault tolerance APIs, a JWT token exchange for improved security and Health Check which enables an application to publish its health status to the underlying cloud platform. For the latter, if the application is no longer healthy, then a cloud runtime can restart that application instance.
The MicroProfile community is collaboratively defining APIs although there can be multiple implementations of the APIs among members. For example, version 1.0 of the configuration API is ready to be formalized. In the meantime, IBM, Apache Geronimo, Apache Tamaya, and Red Hat are creating their own implementations.
“It’s specifications first and then individual implementations,” said Clingan. “If we think it’s better for all of us to collaborate around one implementation, we have that option.”
The longer-term goal is to submit MicroProfile technologies to a standards organization like the JCP, although developers are encouraged to experiment with the technology now. The MicroProfile community would also like help prioritizing its initial list of potential JSRs and non-Java EE technologies that could be part of future MicroProfile versions.
“It took four years to go from Java EE 7 to Java EE 8 and there was no way for developers to experiment with it,” said Clingan. “We want to put the technology in developers’ hands right away and then accelerate towards standardization.”
That way, members of the community and startups who want fast access to technology can get it and enterprises concerned about risk understand that the technology is heading towards standardization.
The MicroProfile community currently includes Red Hat, IBM, Payara, Tomitribe, Fujitsu, Hazelcast, kumuluz EE, individual contributors, the London Java Community, Hammock and SOUJava. The group is open to any individual or organization that is interested in Java EE and microservices on a committer or non-committer level. Per Eclipse guidelines, committers must be voted in.
“We honor all feedback,” said Clingan. “We want to hear from people who have interest or expertise even if they don’t have the time to be a committer.”
Getting involved with Eclipse MicroProfile is as easy as clicking the “Join the Discussion” button on the MicroProfile.io home page which links to the MicroProfile Google group. There, individuals can participate in and start discussions.
Learn more at microprofile.io