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. Wirtschaftlicher Treiber ist die zunehmende Nutzung von Cloud-Computing-Ressourcen durch Anbieter von Services. Angekündigt sind drei Veröffentlichungen pro Jahr.
Kernelemente Bearbeiten
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.
Wichtige APIs Bearbeiten
Name und Abkürzung | Beschreibung | 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 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. | 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. | nein | nein | nein | nein | nein | ja (1.0.1) | 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. | 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. | 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. | 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. | 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. | 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). | 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. 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. | 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. | 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 Bearbeiten
Name | MicroProfile Version | Anmerkung |
---|---|---|
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, kein Server |
WildFly 19 | 3.3 |
Siehe auch Bearbeiten
Weblinks Bearbeiten
- Offizielle MicroProfile-Website von Eclipse, englisch
- MicroProfile-Projekt bei Eclipse, englisch
- "The twelve-factor app" – Die Zwölf-Faktoren-App
Einzelnachweise Bearbeiten
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Wolfgang Herrmann: 21. November 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019. am
- Dominik Mohilo: In: JAXenter. 13. Februar 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019. am
- Lars Röwekamp: Archiviert vom 20. April 2019; abgerufen am 20. April 2019. am
- Lars Röwekamp: Archiviert vom 20. April 2019; abgerufen am 20. April 2019. am
- 9. August 2017, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 21. September 2017, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 3. Januar 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 29. Juni 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 29. Juni 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Kevin Sutter: MicroProfile 2.0. 20. Juni 2018, abgerufen am 18. April 2019 (englisch).
- Eclipse Foundation, 19. Oktober 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- John Clingan: MicroProfile 2.1. 19. Oktober 2018, abgerufen am 18. April 2019 (englisch).
- Eclipse Foundation, 10. Februar 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Kevin Sutter: MicroProfile 2.2. 6. Februar 2019, abgerufen am 18. April 2019 (englisch).
- Eclipse Foundation, 11. Juni 2019, archiviert vom 13. Juni 2019; abgerufen am 13. Juni 2019 (amerikanisches Englisch). am
- Kevin Sutter: MicroProfile 3.0. 11. Juni 2019, abgerufen am 13. Juni 2019 (englisch).
- Eclipse Foundation, 13. Oktober 2019, archiviert vom 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch). am
- Cesar Saavedra: Eclipse MicroProfile 3.1 is Now Available. 13. Oktober 2019, abgerufen am 13. November 2019 (englisch).
- Eclipse Foundation, 11. November 2019, archiviert vom 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch). am
- Cesar Saavedra: Eclipse MicroProfile 3.2 is Now Available. 11. November 2019, abgerufen am 13. November 2019 (englisch).
- Eclipse Foundation, 17. Februar 2020, archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am
- Cesar Saavedra: Eclipse MicroProfile 3.3 is Now Available. 18. Februar 2020, abgerufen am 24. März 2020 (englisch).
- Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (englisch). am
- Wayne Beaton: Eclipse Project for JSON-B. 30. November 2018, abgerufen am 18. April 2019 (englisch).
- Eclipse Foundation, 26. Juli 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am }
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Wayne Beaton: Eclipse Project for Common Annotations. 30. November 2018, abgerufen am 19. April 2019 (amerikanisches Englisch).
- Eclipse EE4J, 21. November 2018, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 18. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 17. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019. am
- In: Microprofile. Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Eclipse Foundation, 15. April 2019, archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am
- 14. Februar 2020, archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am
- Archiviert vom 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch). am
- Archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am
- Archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am
- Brian Stansberry: Archiviert vom 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch). am