Java >> Java opplæring >  >> Java

Java EE Micro Profile – Optimalisering av Java EE for mikrotjenester

Det er mange klager på manglende fremgang på Java EE 8 og at standarden ikke adresserer moderne utfordringer og trender. Men jeg ønsker ikke å krangle om det … i hvert fall ikke i dette innlegget.

I dag vil jeg snakke om noe stort som skjedde på DevNation 2016 keynote. Red Hat, IBM, Payara, Tomitribe og LJC annonserte en mikroprofil for Java EE med mål om å optimalisere Java EE for mikrotjenestearkitekturer. Denne kunngjøringen viser ikke bare at de fleste av de store aktørene i applikasjonsservermarkedet jobber med optimaliserte løsninger for mikrotjenestearkitekturer, men også at de fortsatt er forpliktet til Java EE og dets fremtid.

Hva er en profil?

Før vi dykker ned i detaljene i den nye mikroprofilen, la meg forklare hva en profil er.

Profiler ble lagt til i Java EE 6 med mål om å definere delsett av Java EE-spesifikasjoner for spesifikke formål. Så langt er det bare 2 profiler, den fullstendige profilen, som inneholder alle Java EE-spesifikasjoner og den mindre nettprofilen, som definerer et undersett av spesifikasjoner for nettapplikasjoner.

Til nå er ikke mikroprofilen en del av Java EE-spesifikasjonen og derfor ikke en offisiell profil. Men det vil endre seg når profildefinisjonen får litt stabilitet.

Hva er en del av mikroprofilen?

Den første versjonen av Micro Profile inkluderer bare CDI, JAX-RS, som bruker Servlet-spesifikasjonen, og JSon-P. Dette er åpenbart det minste minimum av Java EE-spesifikasjoner som kreves for å implementere en mikrotjeneste som bruker en REST API for å eksponere ressurser som JSON-dokumenter.
Hvis du foretrekker å bruke XML i stedet for JSON, kan du selvfølgelig bruke JAX-B, som er en del av Java SE og ikke krever noen ekstra Java EE-spesifikasjon.

Hva kan bli lagt til i fremtiden?

Den nåværende versjonen av mikroprofilen inkluderer bare et lite antall spesifikasjoner og flere kan bli lagt til i fremtiden. Du kan gi tilbakemelding om hvilke spesifikasjoner du vil ha i mikroprofilen på microprofile.io.

Jeg er ikke involvert i definisjonen av profilen, men dette er spesifikasjonene jeg forventer å bli lagt til i fremtiden:

  • Den mest åpenbare er Bean Validation-spesifikasjonen som brukes av de fleste applikasjoner for å validere JSON-inndata.
  • Java EE Security API (som sannsynligvis er OAuth 2-alternativet i undersøkelsen) som den nye Java EE-sikkerhetsstandarden.
  • JTA-spesifikasjonen for å gi transaksjonsstøtte innenfor en mikrotjeneste.

Hva mangler?

Det er mange ting som kan legges til profilen, men hvis du vil holde den liten, må du fokusere på de vanligste brukstilfellene. For disse mangler jeg 3 ting i den nåværende mikroprofilen:

  1. inndatavalidering – dette kan bli lagt til via Bean Validation-spesifikasjonen snart,
  2. konfigurasjon – det er ingen konfigurasjonsstandard i Java EE så langt, men Apache Tamaya ville være en god løsning, og dette kan være det første trinnet for å etablere en standard,
  3. Beregninger – overvåking av nøkkelberegninger er en annen viktig oppgave som ikke dekkes av en Java EE-standard.

Som du ser, er 2 av disse 3 for øyeblikket ikke dekket av en Java EE-spesifikasjon, og det er derfor tvilsomt om og når de kan legges til mikroprofilen.

Hvordan delta?

Først av alt bør du bruke 2 minutter på å svare på undersøkelsene om standardene du liker å legge til i mikroprofilen og om dine viktigste aspekter ved mikrotjenester på microprofile.io.

Og hvis du vil ha en mer aktiv tilnærming og bli med i diskusjonene, kan du gjøre det i MicroProfile google-gruppen.

Referanser

Videoopptak av nøkkelnotatet til DevNation (for øyeblikket ødelagt)

Kunngjøringer fra Red Hat, Payara, IBM, Tomitribe

MicroProfile.io

Vanlige spørsmål om mikroprofil


Java Tag