MicroProfile
The Eclipse MicroProfile Standard is a microservices -oriented specification which, complementary and based on JavaEE , aims to achieve portability for applications on different MicroProfile runtime environments . The economic driver is the increasing use of cloud computing resources by service providers. Three publications per year are announced.
Core elements
The specification takes those individual specifications from JavaEE that were written for REST and JSON . There is also the programming model with CDI . While a classic JavaEE runtime environment is designed to take on the cross-sectional tasks (e.g. configuration , logging , monitoring ) for several applications , many small runtime environments are an essential feature of the software architecture in microservices . This is where the supplementary specifications of MicroProfile come in, so that the cross-sectional tasks can also be fulfilled in such a structure.
Important APIs
Name and abbreviation | description | v1.0 | v1.1 | v1.2 | v1.3 | v1.4 | v2.0 | v2.1 | v2.2 | v3.0 | v3.1 | v3.2 | v3.3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Java Platform, Enterprise Edition (JavaEE) | Microprofile is based on the named JavaEE version. | 7th | 7th | 7th | 7th | 7th | 8th | 8th | 8th | 8th | 8th | 8th | 8th |
Contexts and Dependency Injection (CDI) | Java standard, which allows the configuration of modules depending on different contexts by injecting dependencies. | 1.2 | 1.2 | 1.2 | 1.2 | 1.2 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 |
Java API for RESTful Web Services (JAX-RS) | Java API that enables and standardizes the use of the Representational State Transfer (REST) software architecture style in the context of web services. | 2.0 | 2.0 | 2.0 | 2.0 | 2.0 | 2.1 | 2.1 | 2.1 | 2.1 | 2.1 | 2.1 | 2.1 |
Java API for JSON Processing (JSON-P) | Java API that can process JSON messages. The processing is stream based, the Java object model is similar to the XML DOM. | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 | 1.1 |
Java API for JSON Binding (JSON-B) | Java API that binds JSON messages as a standard layer to Java objects. | No | No | No | No | No | yes (1.0.1) | yes (1.0.1) | yes (1.0.1) | yes (1.0.1) | yes (1.0.1) | yes (1.0.1) | yes (1.0.1) |
Configuration API | Java API for determining configurations from different sources. | No | yes (1.0) | yes (1.0) | yes (1.1) | yes (1.2) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.4) |
Common annotations | Java API that specifies annotations with similar semantic concepts for JavaSE and JavaEE. | No | No | yes (1.2) | yes (1.2) | yes (1.2) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) |
Fault Tolerance | Java API that specifies different strategies for a fault-tolerant behavior of a MicroService. | No | No | yes (1.0) | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.1) | yes (2.0) | yes (2.0) | yes (2.0) | yes (2.0) | yes (2.1) |
Health Check | Java API for determining the state of a node from another machine. The primary goal is to automatically terminate or replace the node. Secondly, this can also be used for monitoring by human administrators. | No | No | yes (1.0) | yes (1.0) | yes (1.0) | yes (1.0) | yes (1.0) | yes (1.0) | yes (2.0) | yes (2.1) | yes (2.1) | yes (2.2) |
Metrics | Java API for the provision of telemetry data of the MicroProfile runtime environment and the actual application. | No | No | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (2.0) | yes (2.1) | yes (2.2) | yes (2.3) |
JWT propagation | Java API for the standardized protection of microservices based on JSON Web Token (JWT). | No | No | yes (1.0) | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) |
OpenAPI | Java API for the generic publication of the application's own API documentation. The forerunner specification was Swagger . | No | No | No | yes (1.0) | yes (1.0) | yes (1.0) | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.1) |
OpenTracing | Java API for tracing a JAX-RS application. | No | No | No | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.2) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.3) |
Rest client | Java API for type-safe calling of a RESTful service via http. | No | No | No | yes (1.0) | yes (1.1) | yes (1.1) | yes (1.1) | yes (1.2) | yes (1.3) | yes (1.3) | yes (1.3) | yes (1.4) |
Implementations
Surname | MicroProfile version | annotation |
---|---|---|
Thorntail 2.6 | 3.2 | |
Open Liberty 20.0.0.2 | 3.3 | Preview |
Apache TomEE 7 | 2.0 | |
Payara Server 5.201 | 3.2 | |
SmallRye | 3.2 | API, not a server |
WildFly 19 | 3.3 |
See also
Web links
- Official Eclipse MicroProfile website
- MicroProfile project at Eclipse, English
- "The twelve-factor app" - The twelve-factor app
Individual evidence
- ^ Resources. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Wolfgang Herrmann: Gartner Hype Cycle: How the big cloud trends develop. November 21, 2018, archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ↑ Dominik Mohilo: Eclipse MicroProfile 2.2: Updates for Fault Tolerance, OpenAPI, OpenTracing and the rest of the client. In: JAXenter. February 13, 2019, archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ↑ Lars Röwekamp: MicroProfile under the microscope, Part 1: Config API. Archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ↑ Lars Röwekamp: MicroProfile under the microscope, Part 2: Health Check and Metrics API. Archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ↑ MicroProfile 1.1 announced! - WASdev. August 9, 2017, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile 1.2. Eclipse Foundation, September 21, 2017, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile 1.3. Eclipse Foundation, January 3, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile 1.4. Eclipse Foundation, June 29, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile 2.0. Eclipse Foundation, June 29, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Kevin Sutter: MicroProfile 2.0. June 20, 2018, accessed April 18, 2019 .
- ↑ MicroProfile 2.1. Eclipse Foundation, October 19, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ^ John Clingan: MicroProfile 2.1. October 19, 2018, accessed April 18, 2019 .
- ↑ MicroProfile 2.2. Eclipse Foundation, February 10, 2019, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Kevin Sutter: MicroProfile 2.2. February 6, 2019, accessed April 18, 2019 .
- ↑ MicroProfile 3.0. Eclipse Foundation June 11, 2019; Archived from the original on June 13, 2019 ; Retrieved June 13, 2019 (American English).
- ↑ Kevin Sutter: MicroProfile 3.0. June 11, 2019, accessed June 13, 2019 .
- ↑ MicroProfile 3.1. Eclipse Foundation, October 13, 2019; archived from the original on November 13, 2019 ; Retrieved November 13, 2019 (American English).
- ↑ Cesar Saavedra: Eclipse MicroProfile 3.1 is now available. October 13, 2019, accessed November 13, 2019 .
- ↑ MicroProfile 3.2. Eclipse Foundation November 11, 2019; archived from the original on November 13, 2019 ; Retrieved November 13, 2019 (American English).
- ↑ Cesar Saavedra: Eclipse MicroProfile 3.2 is now available. November 11, 2019, accessed November 13, 2019 .
- ↑ MicroProfile 3.3. Eclipse Foundation February 17, 2020, archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).
- ↑ Cesar Saavedra: Eclipse MicroProfile 3.3 is now available. February 18, 2020, accessed on March 24, 2020 .
- ↑ JSON Processing (JSON-P) - Home. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Java API for JSON Binding (JSON-B). Archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ^ Wayne Beaton: Eclipse Project for JSON-B. November 30, 2018, accessed April 18, 2019 .
- ↑ MicroProfile 2.0.1. Eclipse Foundation, July 26, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English). }
- ↑ MicroProfile Configuration Feature. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ^ Wayne Beaton: Eclipse Project for Common Annotations. November 30, 2018. Retrieved April 19, 2019 (American English).
- ^ Java (TM) Common Annotations. Eclipse EE4J, November 21, 2018, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ^ Fault Tolerance. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ^ Fault Tolerance. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile Health. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile Health. Eclipse Foundation, April 18, 2019, archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Eclipse Microprofile Metrics. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Eclipse Microprofile Metrics. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ JWT RBAC for MicroProfile. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ JWT RBAC for MicroProfile. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Eclipse MicroProfile OpenAPI. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Eclipse MicroProfile OpenAPI. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile OpenTracing. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ MicroProfile OpenTracing. Eclipse Foundation, April 17, 2019; archived from the original on April 20, 2019 ; accessed on April 20, 2019 .
- ^ Rest Client for MicroProfile. In: Microprofile. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ^ Rest Client for MicroProfile. Eclipse Foundation, April 15, 2019; archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Announcing Thorntail 2.6.0.Final. Archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).
- ↑ A preview of MicroProfile 3.3 on Open Liberty. February 14, 2020, archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).
- ↑ Apache TomEE. Archived from the original on April 20, 2019 ; Retrieved April 20, 2019 (American English).
- ↑ Payara Server 5.201 Release Notes · Payara Server. Archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).
- ^ Eclipse MicroProfile Platform. Archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).
- ↑ Brian Stansberry: WildFly 19 is released! Archived from the original on March 24, 2020 ; Retrieved March 24, 2020 (American English).