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ürzungBeschreibungv1.0v1.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.777778888888
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.21.21.21.21.22.02.02.02.02.02.02.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.02.02.02.02.02.12.12.12.12.12.12.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.01.01.01.01.01.11.11.11.11.11.11.1
Java API for JSON Binding (JSON-B)Java API, das JSON Nachrichten als Standard Schicht an Java Objekte bindet.[25][26]neinneinneinneinneinja (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 APIJava API zur Ermittlung von Konfigurationen aus unterschiedlichen Quellen.[28]neinja (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 AnnotationsJava API, das Annotationen mit gleichartigen semantischen Konzepten für JavaSE und JavaEE spezifiziert.[29][30]neinneinja (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 ToleranceJava API, das unterschiedliche Strategien für ein fehlertolerantes Verhalten eines MicroService spezifiziert.[31][32]neinneinja (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 CheckJava 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]neinneinja (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)
MetricsJava API zur Bereitstellung von Telemetriedaten der MicroProfile Laufzeitumgebung und der eigentlichen Applikation.[35][36]neinneinja (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 PropagationJava API zur standardisierten Absicherung von Microservices auf Basis von JSON Web Token(JWT).[37][38]neinneinja (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)
OpenAPIJava API zur generischen Veröffentlichung der applikationseigenen API Dokumentation.[39][40] Vorläufer Spezifikation war Swagger.neinneinneinja (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)
OpenTracingJava API zur Nachverfolgung (tracing) einer JAX-RS Applikation.[41][42]neinneinneinja (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 ClientJava API zum typsicheren Aufruf eines RESTful Service über http.[43][44]neinneinneinja (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

NameMicroProfile VersionAnmerkung
Thorntail 2.6[45]3.2
Open Liberty 20.0.0.2[46]3.3Preview
Apache TomEE 7[47]2.0
Payara Server 5.201[48]3.2
SmallRye[49]3.2API, kein Server
WildFly 19[50]3.3

Siehe auch

Weblinks

Einzelnachweise

  1. Resources. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  2. Wolfgang Herrmann: Gartner Hype Cycle: Wie sich die großen Cloud-Trends entwickeln. 21. November 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019.
  3. Dominik Mohilo: Eclipse MicroProfile 2.2: Updates für Fault Tolerance, OpenAPI, OpenTracing und den Rest Client. In: JAXenter. 13. Februar 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019.
  4. Lars Röwekamp: MicroProfile unter der Lupe, Teil 1: Config API. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019.
  5. Lars Röwekamp: MicroProfile unter der Lupe, Teil 2: Health Check und Metrics API. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019.
  6. MicroProfile 1.1 announced! - WASdev. 9. August 2017, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  7. MicroProfile 1.2. Eclipse Foundation, 21. September 2017, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  8. MicroProfile 1.3. Eclipse Foundation, 3. Januar 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  9. MicroProfile 1.4. Eclipse Foundation, 29. Juni 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  10. MicroProfile 2.0. Eclipse Foundation, 29. Juni 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  11. Kevin Sutter: MicroProfile 2.0. 20. Juni 2018, abgerufen am 18. April 2019 (englisch).
  12. MicroProfile 2.1. Eclipse Foundation, 19. Oktober 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  13. John Clingan: MicroProfile 2.1. 19. Oktober 2018, abgerufen am 18. April 2019 (englisch).
  14. MicroProfile 2.2. Eclipse Foundation, 10. Februar 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  15. Kevin Sutter: MicroProfile 2.2. 6. Februar 2019, abgerufen am 18. April 2019 (englisch).
  16. MicroProfile 3.0. Eclipse Foundation, 11. Juni 2019, archiviert vom Original am 13. Juni 2019; abgerufen am 13. Juni 2019 (amerikanisches Englisch).
  17. Kevin Sutter: MicroProfile 3.0. 11. Juni 2019, abgerufen am 13. Juni 2019 (englisch).
  18. MicroProfile 3.1. Eclipse Foundation, 13. Oktober 2019, archiviert vom Original am 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch).
  19. Cesar Saavedra: Eclipse MicroProfile 3.1 is Now Available. 13. Oktober 2019, abgerufen am 13. November 2019 (englisch).
  20. MicroProfile 3.2. Eclipse Foundation, 11. November 2019, archiviert vom Original am 13. November 2019; abgerufen am 13. November 2019 (amerikanisches Englisch).
  21. Cesar Saavedra: Eclipse MicroProfile 3.2 is Now Available. 11. November 2019, abgerufen am 13. November 2019 (englisch).
  22. MicroProfile 3.3. Eclipse Foundation, 17. Februar 2020, archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
  23. Cesar Saavedra: Eclipse MicroProfile 3.3 is Now Available. 18. Februar 2020, abgerufen am 24. März 2020 (englisch).
  24. JSON Processing (JSON-P) - Home. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  25. Java API for JSON Binding (JSON-B). Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (englisch).
  26. Wayne Beaton: Eclipse Project for JSON-B. 30. November 2018, abgerufen am 18. April 2019 (englisch).
  27. MicroProfile 2.0.1. Eclipse Foundation, 26. Juli 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).}
  28. MicroProfile Configuration Feature. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  29. Wayne Beaton: Eclipse Project for Common Annotations. 30. November 2018, abgerufen am 19. April 2019 (amerikanisches Englisch).
  30. Java(TM) Common Annotations. Eclipse EE4J, 21. November 2018, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  31. Fault Tolerance. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  32. Fault Tolerance. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  33. MicroProfile Health. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  34. MicroProfile Health. Eclipse Foundation, 18. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  35. Eclipse Microprofile Metrics. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  36. Eclipse Microprofile Metrics. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  37. JWT RBAC for MicroProfile. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  38. JWT RBAC for MicroProfile. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  39. Eclipse MicroProfile OpenAPI. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  40. Eclipse MicroProfile OpenAPI. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  41. MicroProfile OpenTracing. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  42. MicroProfile OpenTracing. Eclipse Foundation, 17. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019.
  43. Rest Client for MicroProfile. In: Microprofile. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  44. Rest Client for MicroProfile. Eclipse Foundation, 15. April 2019, archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  45. Announcing Thorntail 2.6.0.Final. Archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
  46. A preview of MicroProfile 3.3 on Open Liberty. 14. Februar 2020, archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
  47. Apache TomEE. Archiviert vom Original am 20. April 2019; abgerufen am 20. April 2019 (amerikanisches Englisch).
  48. Payara Server 5.201 Release Notes · Payara Server. Archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
  49. Eclipse MicroProfile Platform. Archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).
  50. Brian Stansberry: WildFly 19 is released! Archiviert vom Original am 24. März 2020; abgerufen am 24. März 2020 (amerikanisches Englisch).