MicroProfile

Software From Wikipedia, the free encyclopedia

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

Weitere Informationen Name und Abkürzung, Beschreibung ...
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)
Schließen

Implementierungen

Weitere Informationen Name, Anmerkung ...
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
Schließen

Siehe auch

Einzelnachweise

Related Articles

Wikiwand AI