Eclipse MicroProfile defines itself as:
The MicroProfile is a baseline platform definition that optimizes Enterprise Java for a microservices architecture and delivers application portability across multiple MicroProfile runtimes. — MicroProfile FAQ
Java for Enterprise applications are usually built on two options: Spring Framework and Java EE. Java EE created a set of specifications defined first by Sun Microsystems and then by Oracle through the Java Community Process. Specifications were meant to facilitate vendor agnostic development and deployment. During the last 5 years, the Java EE platform has become stable and mature resulting in less frequent releases. Java EE has also expanded over the years, requiring vendors to maintain or implement the large set of specifications.
While Java EE was slowing down, web services continue to evolve leading to the creation of new technologies such as JSON, HTTP 2, RESTful web services and microservices architecture. With its slower release cycle, Java EE failed to keep up with changes in the industry. Aware of the skills and investment that both enterprises and vendors put into Java EE, a group of vendors (including Tomitribe), supported by the active Java Community, decided to create MicroProfile, an optimized platform for microservices architecture.
MicroProfile was created in 2016 and quickly joined the Eclipse foundation. Since then, there have been five releases of the MicroProfile platform with the addition of many specifications to addressing the needs and feedback of users (See Figure 1). MicroProfile as per June 2018 release, is composed of the following specification.
The primary purpose of MicroProfile is to create a Java Enterprise framework for implementing portable microservices across vendor solutions. MicroProfile is concerned with a vendor agnostic programming model as well as configuration, and services such as tracing, fault tolerance, health, and metrics to name a few.
In the next few weeks we will explain each of these MicroProfile specification and provide examples of how to use them in TomEE – the Apache open source Java EE application server supported by Tomitribe. We hope you enjoy this series of articles which should provide you with a clear understanding of MicroProfile and how all the specifications can be used to make your microservices solutions more portable and easier to manage.