MicroProfile
Der Eclipse MicroProfile Standard ist eine auf Microservices ausgerichtete Spezifikation, die - komplementär und basierend auf der JavaEE - eine Portabilität für Applikationen auf unterschiedlichen MicroProfile Laufzeitumgebungen erreichen will.[1] Wirtschaftlicher Treiber ist die zunehmende Nutzung von Cloud-Computing-Ressourcen durch Anbieter von Services.[2] Angekündigt sind drei Veröffentlichungen pro Jahr.[3]
Kernelemente
Die Spezifikation übernimmt aus der JavaEE diejenigen Einzelspezifikationen, die für REST und JSON geschrieben wurden. Hinzu kommt noch das Programmiermodell mit CDI. Während eine klassische JavaEE Laufzeitumgebung darauf ausgerichtet ist für mehrere Anwendungen die Querschnittsaufgaben (z. B. Konfiguration, Logging, Monitoring) zu übernehmen, sind bei Microservices viele kleine Laufzeitumgebungen wesentliches Merkmal der Softwarearchitektur. Hier setzen die ergänzenden Spezifikationen von MicroProfile an, um die Querschnittsaufgaben auch in einem solchen Aufbau erfüllen zu können.[4][5]
Wichtige APIs
Name und Abkürzung | Beschreibung | v1.0 | v1.1[6] | v1.2[7] | v1.3[8] | v1.4[9] | v2.0[10][11] | v2.1[12][13] | v2.2[14][15] | v3.0[16][17] | v3.1[18][19] | v3.2[20][21] | v3.3[22][23] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Java Platform, Enterprise Edition (JavaEE) | Microprofile basiert auf der genannten JavaEE Version. | 7 | 7 | 7 | 7 | 7 | 8 | 8 | 8 | 8 | 8 | 8 | 8 |
Contexts and Dependency Injection (CDI) | Java-Standard, welcher die Konfiguration von Modulen abhängig von verschiedenen Zusammenhängen durch Injektion von Abhängigkeiten erlaubt. | 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, das die Verwendung des Software-Architekturstils Representational State Transfer (REST) im Rahmen von Webservices ermöglicht und vereinheitlicht. | 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, das JSON Nachrichten verarbeiten kann. Die Verarbeitung ist Stream basiert, das Java Objekt Modell ähnelt dem XML DOM.[24] | 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, das JSON Nachrichten als Standard Schicht an Java Objekte bindet.[25][26] | nein | nein | nein | nein | nein | ja (1.0.1[27]) | ja (1.0.1) | ja (1.0.1) | ja (1.0.1) | ja (1.0.1) | ja (1.0.1) | ja (1.0.1) |
Configuration API | Java API zur Ermittlung von Konfigurationen aus unterschiedlichen Quellen.[28] | nein | ja (1.0) | ja (1.0) | ja (1.1) | ja (1.2) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.4) |
Common Annotations | Java API, das Annotationen mit gleichartigen semantischen Konzepten für JavaSE und JavaEE spezifiziert.[29][30] | nein | nein | ja (1.2) | ja (1.2) | ja (1.2) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) |
Fault Tolerance | Java API, das unterschiedliche Strategien für ein fehlertolerantes Verhalten eines MicroService spezifiziert.[31][32] | nein | nein | ja (1.0) | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (2.0) | ja (2.0) | ja (2.0) | ja (2.0) | ja (2.1) |
Health Check | Java API zur Ermittlung des Zustands eines Nodes von einer anderen Maschine aus. Ziel ist primär die automatische Beendigung oder Ersatz des Nodes. Sekundär kann dies auch für eine Überwachung durch menschliche Administratoren dienen.[33][34] | nein | nein | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (2.0) | ja (2.1) | ja (2.1) | ja (2.2) |
Metrics | Java API zur Bereitstellung von Telemetriedaten der MicroProfile Laufzeitumgebung und der eigentlichen Applikation.[35][36] | nein | nein | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (2.0) | ja (2.1) | ja (2.2) | ja (2.3) |
JWT Propagation | Java API zur standardisierten Absicherung von Microservices auf Basis von JSON Web Token(JWT).[37][38] | nein | nein | ja (1.0) | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) |
OpenAPI | Java API zur generischen Veröffentlichung der applikationseigenen API Dokumentation.[39][40] Vorläufer Spezifikation war Swagger. | nein | nein | nein | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) |
OpenTracing | Java API zur Nachverfolgung (tracing) einer JAX-RS Applikation.[41][42] | nein | nein | nein | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.2) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.3) |
Rest Client | Java API zum typsicheren Aufruf eines RESTful Service über http.[43][44] | nein | nein | nein | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.2) | ja (1.3) | ja (1.3) | ja (1.3) | ja (1.4) |
Implementierungen
Name | MicroProfile Version | Anmerkung |
---|---|---|
Thorntail 2.6[45] | 3.2 | |
Open Liberty 20.0.0.2[46] | 3.3 | Preview |
Apache TomEE 7[47] | 2.0 | |
Payara Server 5.201[48] | 3.2 | |
SmallRye[49] | 3.2 | API, kein Server |
WildFly 19[50] | 3.3 | |
Siehe auch
Weblinks
- Offizielle MicroProfile-Website von Eclipse, englisch
- MicroProfile-Projekt bei Eclipse, englisch
- "The twelve-factor app" – Die Zwölf-Faktoren-App
Einzelnachweise
- Resources. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Wolfgang Herrmann: Gartner Hype Cycle: Wie sich die großen Cloud-Trends entwickeln. 21. November 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019.
- Dominik Mohilo: Eclipse MicroProfile 2.2: Updates für Fault Tolerance, OpenAPI, OpenTracing und den Rest Client. In: JAXenter. 13. Februar 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019.
- Lars Röwekamp: MicroProfile unter der Lupe, Teil 1: Config API. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019.
- Lars Röwekamp: MicroProfile unter der Lupe, Teil 2: Health Check und Metrics API. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019.
- MicroProfile 1.1 announced! - WASdev. 9. August 2017, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile 1.2. Eclipse Foundation, 21. September 2017, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile 1.3. Eclipse Foundation, 3. Januar 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile 1.4. Eclipse Foundation, 29. Juni 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile 2.0. Eclipse Foundation, 29. Juni 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Kevin Sutter: MicroProfile 2.0. 20. Juni 2018, abgerufen am 18. April 2019 (englisch).
- MicroProfile 2.1. Eclipse Foundation, 19. Oktober 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- John Clingan: MicroProfile 2.1. 19. Oktober 2018, abgerufen am 18. April 2019 (englisch).
- MicroProfile 2.2. Eclipse Foundation, 10. Februar 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Kevin Sutter: MicroProfile 2.2. 6. Februar 2019, abgerufen am 18. April 2019 (englisch).
- MicroProfile 3.0. Eclipse Foundation, 11. Juni 2019, archiviert vom am 13. Juni 2019; abgerufen am 13. Juni 2019 (amerikanisches Englisch).
- Kevin Sutter: MicroProfile 3.0. 11. Juni 2019, abgerufen am 13. Juni 2019 (englisch).
- MicroProfile 3.1. Eclipse Foundation, 13. Oktober 2019, archiviert vom am 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch).
- Cesar Saavedra: Eclipse MicroProfile 3.1 is Now Available. 13. Oktober 2019, abgerufen am 13. November 2019 (englisch).
- MicroProfile 3.2. Eclipse Foundation, 11. November 2019, archiviert vom am 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch).
- Cesar Saavedra: Eclipse MicroProfile 3.2 is Now Available. 11. November 2019, abgerufen am 13. November 2019 (englisch).
- MicroProfile 3.3. Eclipse Foundation, 17. Februar 2020, archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
- Cesar Saavedra: Eclipse MicroProfile 3.3 is Now Available. 18. Februar 2020, abgerufen am 24. März 2020 (englisch).
- JSON Processing (JSON-P) - Home. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Java API for JSON Binding (JSON-B). Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (englisch).
- Wayne Beaton: Eclipse Project for JSON-B. 30. November 2018, abgerufen am 18. April 2019 (englisch).
- MicroProfile 2.0.1. Eclipse Foundation, 26. Juli 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).}
- MicroProfile Configuration Feature. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Wayne Beaton: Eclipse Project for Common Annotations. 30. November 2018, abgerufen am 19. April 2019 (amerikanisches Englisch).
- Java(TM) Common Annotations. Eclipse EE4J, 21. November 2018, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Fault Tolerance. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Fault Tolerance. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile Health. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile Health. Eclipse Foundation, 18. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Eclipse Microprofile Metrics. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Eclipse Microprofile Metrics. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- JWT RBAC for MicroProfile. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- JWT RBAC for MicroProfile. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Eclipse MicroProfile OpenAPI. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Eclipse MicroProfile OpenAPI. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile OpenTracing. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- MicroProfile OpenTracing. Eclipse Foundation, 17. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019.
- Rest Client for MicroProfile. In: Microprofile. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Rest Client for MicroProfile. Eclipse Foundation, 15. April 2019, archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Announcing Thorntail 2.6.0.Final. Archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
- A preview of MicroProfile 3.3 on Open Liberty. 14. Februar 2020, archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
- Apache TomEE. Archiviert vom am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
- Payara Server 5.201 Release Notes · Payara Server. Archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
- Eclipse MicroProfile Platform. Archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
- Brian Stansberry: WildFly 19 is released! Archiviert vom am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).