Jakarta EE
Jakarta EE , tidligere Java Platform, Enterprise Edition (Java EE), er spesifikasjonen for en programvarearkitektur for transaksjonsbasert kjøring av applikasjoner programmert i Java, spesielt webapplikasjoner . Det er en av de største plattformene som konkurrerer om mellomvaremarkedet . Den største konkurrenten er .NET - plattformen fra Microsoft .
Spesifikasjonen definerer programvarekomponenter og tjenester som hovedsakelig er opprettet på Java-programmeringsspråket. Hensikten med beskrivelsen er å tilveiebringe en generelt akseptert rammeverket med tanke på å kunne utvikle fordelt , multi-lags -applikasjoner på sin basis fra modulære komponenter . Tydelig definerte grensesnitt mellom komponentene og beholderne skal sikre at programvarekomponenter fra forskjellige produsenter er kompatible hvis de overholder spesifikasjonen og at den distribuerte applikasjonen er lett skalerbar .
Komponenter av spesifikasjonen "Java Platform, Enterprise Edition" ble utviklet innen Java Community Process av forskjellige selskaper og til slutt gjort tilgjengelig for publikum i form av et dokument og en referanseimplementering. Fremtidige spesifikasjoner vil bli gjort tilgjengelig som Eclipse Jakarta EE Platform som en del av Eclipse Foundation- prosjektet EE4J , inkludert referanseimplementering, Technology Compatibility Kit (TCK) og tutorial.
Tidligere versjoner
Eclipse Jakarta EE Platform - Eclipse EE4J versjoner
"Java Platform, Enterprise Edition, v 8", inkludert Technology Compatibility Kit (TCK) og referanseimplementering GlassFish , ble overlevert til Eclipse Foundation av Oracle og EE4J- prosjektet ble grunnlagt der. Dette utvikler, koordinerer og publiserer Eclipse Jakarta EE Platform .
På den tiden hadde ikke Eclipse Foundation og Oracle inngått en avtale om navngivningsrettighetene til Java og det tilknyttede tekniske navneområdet, som ble løst i 2019 ved å gi nytt navn til versjonen i Jakarta.
Java Platform, Enterprise Edition - Java Community Process-versjoner under ledelse av Oracle
Fram til og med versjon 8 ble Java EE-plattformen utviklet, koordinert og publisert med Java Community Process under spesifikasjonsadministrasjonen av Oracle . Flere versjoner vises ikke med denne prosessen og under denne veiledningen.
Versjonen av Java EE-spesifikasjonen er versjon 8.0.
Det nye navnet på spesifikasjonen er Java Platform, Enterprise Edition , Java EE for kort [ ˈdʒɑːvə ˌiːˈiː ]. Dette erstatter den forrige forkortelsen J2EE [ ˌdʒeɪˈtuː ˌiːˈiː ] ( Java 2 Platform, Enterprise Edition ).
versjon | Fullt navn | Publiseringsdato for den endelige utgivelsen |
---|---|---|
1.0 | Java 2 Platform Enterprise Edition, v 1.0 | Desember 1999 |
1.2 | Java 2 Platform Enterprise Edition, v 1.2 | 2000 |
1.2.1 | Java 2 Platform Enterprise Edition, v 1.2.1 | 23. mai 2000 |
1.3 | Java 2 Platform Enterprise Edition, v 1.3 | 24. september 2001 |
1.4 | Java 2 Platform Enterprise Edition, v 1.4 | 24. november 2003 |
5 | Java Platform, Enterprise Edition, v 5 | 11. mai 2006 |
Sjette | Java Platform, Enterprise Edition, v 6 | 10. desember 2009 |
7. | Java Platform, Enterprise Edition, v 7 | 12. mai 2013 |
8. plass | Java Platform, Enterprise Edition, v 8 | 18. september 2017 |
Så fulgte versjonene:
- Jakarta EE 8 (2019), fullt kompatibel versjon med Java Platform, Enterprise Edition, v 8
- Jakarta EE 9 (2020)
Infrastruktur
Jakarta EE-komponenter krever en spesiell infrastruktur som et kjøretidsmiljø , en såkalt Jakarta EE Application Server . Denne serveren gir teknisk infrastruktur som
- Sikkerhet,
- Transaksjonsstyring ,
- Navn og katalogtjenester ,
- Kommunikasjon mellom Jakarta EE- komponenter ,
- Persistens-tjenester for langvarig lagring av Java-objekter,
- Styring av komponentene gjennom hele livssyklusen (inkludert instantiering ),
- Installasjonsstøtte ( distribusjon )
til avhending. Videre innkapsler serveren tilgangen til ressursene til det underliggende operativsystemet (filsystem, nettverk, ...).
En Jakarta EE-server er delt inn i forskjellige logiske systemer. Disse kalles containere . Gjeldende spesifikasjon krever følgende containere:
- en EJB-container som et kjøretidsmiljø for Jakarta Enterprise Beans
- en webcontainer som et kjøretidsmiljø for Jakarta Servlets og Jakarta Server Pages (JSP)
- en JCA-container som et kjøretidsmiljø for JCA- kontakter. Dette er ikke eksplisitt definert, men faktisk må alle applikasjonsserverprodusenter implementere det. Fordi begrensninger er definert i Jakarta Enterprise Beans (EJB) og i webcontaineren som ikke gjelder JCA-kjøretidsmiljøet. Dette inkluderer for eksempel å starte tråder eller lese og skrive til filer osv.
- en JMS-leverandør som et styringssystem for meldingskøer.
Det er mange implementeringer tilgjengelig for Jakarta EE-servere, noen er proprietære , noen i form av fritt tilgjengelige open source- løsninger (f.eks. WildFly ). En referanseimplementering er gitt av Eclipse Foundation . Det skal bemerkes at ikke alle servere fullt ut dekker Jakarta EE-spesifikasjonen. Imidlertid publiserer Oracle og Eclipse en liste over sertifiserte servere for hver versjon.
Et databasesystem (DBMS) brukes som en ytterligere infrastrukturkomponent for vedvarende lagring av data . Dette kan være et relasjonssystem eller et sammenlignbart system som et OODBMS . Databehandlingssystemene er vanligvis koblet til via en JDBC- driver.
Tilgang på klientsiden til et Jakarta EE-program foregår ofte via en nettleser , men applikasjonsklienter (Java-applikasjoner, CORBA- komponenter, webtjenesteklienter ) er også utbredt.
Viktige API-er
Jakarta EE APIer inneholder forskjellige teknologier som utvider eller erstatter funksjonaliteten til den grunnleggende Java SE API . I tillegg til de nåværende navnene, er de gamle navnene også gitt i tabellen.
Navn og forkortelse | beskrivelse | J2EE 1.4 | Java EE 5 | Java EE 6 | Java EE 7 | Java EE 8 |
---|---|---|---|---|---|---|
Jakarta Enterprise Beans (EJB), tidligere Enterprise JavaBeans | inneholde forretningslogikken til en bedriftsapplikasjon eller gi tilgang til vedvarende data. Bønnene kjører i en EJB-beholder . Det er tre forskjellige typer EJBer:
|
ja (2.1) | ja (3.0) | ja (3.1) | ja (3.2) | ja (3.2) |
Jakarta Servlet , tidligere Java Servlet | tillater vanligvis utvidelse av servere hvis protokoll er basert på forespørsler og svar. Servlets brukes primært i forbindelse med Hypertext Transfer Protocol (HTTP), der de bor i en nettbeholder og svarer på forespørsler fra nettlesere . | ja (2.4) | ja (2.5) | ja (3.0) | ja (3.1) | ja (4.0) |
Jakarta Server Pages (JSP), tidligere JavaServer Pages | er tekstdokumenter som består av statisk tekst på den ene siden og dynamiske tekstelementer - JSP-elementene - på den andre. JSP-sidene konverteres transparent til en servlet av webcontaineren. | ja (2.0) | ja (2.1) | ja (2.2) | ja (2.3) | ja (2.3) |
Webtjenester (WS) | definere grensesnitt til EJB som kan identifiseres tydelig med en Uniform Resource Identifier (URI) og hvis grensesnitt kan defineres, beskrives og finnes som XML-gjenstander. | ja (1.0) | ja (1.2) | ja (1.3) | ja (1.4) | ja (1.4) |
Java Naming and Directory Interface (JNDI) | er et vanlig grensesnitt som alle Java-klasser har tilgang til navn og katalogtjenester med. Spesielt er tilgang til Java EE-komponenter sikret via JNDI. | ja (1.2) | ja (1.2) | ja (1,2 SE) | ja (1,2 SE) | ja (1,2 SE) |
Jakarta Messaging (JMS), tidligere Java Message Service | er et API for behandling av asynkron melding. | ja (1.1) | ja (1.1) | ja (1.1) | ja (2.0) | ja (2.0) |
Jakarta Transactions API (JTA), tidligere Java Transaction API | lar applikasjonen kontrollere transaksjonsstyring. JTA er Java-grensesnittet for transaksjonsmonitorer . Som standard er dette grensesnittet implementert av Java Transaction Service (JTS), som gir et grensesnitt til CORBA Object Transaction Service (OTS). | ja (1.0.1B) | ja (1.1) | ja (1.1) | ja (1.2) | ja (1.2) |
Java Authentication and Authorization Service (JAAS) | er et Java API som gjør det mulig å tilby autentisering og tilgangsrettstjenester i Java-programmer. JAAS implementerer en standard Pluggable Authentication Module (PAM) og støtter gjennom denne modulen enkel autentisering og brukerbasert autorisasjon . | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) |
Jakarta Mail , tidligere JavaMail | gir tilgang til posttjenester som B. SMTP , POP3 eller IMAP . | ja (1.2) | ja (1.4) | ja (1.4) | ja (1,5) | ja (1.6) |
Jakarta XML Binding (JAXB), tidligere Java Architecture for XML Binding | gjør det mulig å koble et XML-skjema direkte til Java-klasser. Var offisielt bare påkrevd siden Java EE versjon 1.5, men kan allerede støttes før det. | Nei | ja (2.0) | ja (2.2) | ja (2.2) | ja (2.2) |
Java API for XML-prosessering (JAXP) | hjelper utvikleren med å redigere XML- dokumenter. | ja (1.2) | ja (1.3) | ja (1.4 (SE)) | ja (1.4 (SE)) | ja (1.4 (SE)) |
Jakarta XML RPC (JAX-RPC), tidligere Java API for XML-basert RPC | muliggjør ekstern tilgang til RPC- tjenester. | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) |
Jakarta RESTful Web Services (JAX-RS), tidligere Java API for RESTful Web Services | Nei | Nei | ja (1.1) | ja (2.0) | ja (2.1) | |
Java API for XML-registre (JAXR) | tjener til å sikre gjennomsiktig tilgang til såkalte forretningsregistre som ebXML eller en UDDI- basert katalog. | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) |
Java Authorization Contract for Containers (JACC) | definerer ulike sikkerhetsretningslinjer for de forskjellige Java EE-containerne. | ja (1.0) | ja (1.1) | ja (1.4) | ja (1,5) | ja (1,5) |
Jakarta Connectors (JCA), tidligere J2EE Connector Architecture | tjener til å transparent integrere andre systemer (nøkkelord: EAI ). | ja (1,5) | ja (1,5) | ja (1.6) | ja (1.7) | ja (1.7) |
JavaBeans Activation Framework (JAF) | gir muligheten til å gjenkjenne forskjellige data basert på MIME- overskriften. | ja (1.0) | ja (1.1) | ja (1.1) | ja (1.1) | ja (1.1) |
Jakarta XML Web Services (JAX-WS), tidligere Java API for XML Web Services | hjelper til med å lage webtjenester og tilknyttede klienter som kommuniserer via XML , f.eks. B. via såpe . | Nei | ja (2.0) | ja (2.2) | ja (2.2) | ja (2.2) |
Metadata for nettjeneste | beskriver webtjenester med Java-merknader | Nei | ja (2.0) | ja (2.1) | ja (2.1) | ja (2.1) |
Jakarta Persistence API (JPA), tidligere Java Persistence API | gir et enhetlig og databaseuavhengig grensesnitt for objektrelasjonell kartlegging og arbeid med enheter . | Nei | ja (1.0) | ja (2.0) | ja (2.1) | ja (2.2) |
Streaming API for XML (StAX) | er en markørbasert XML-behandling i tillegg til DOM- og SAX- parserene | Nei | ja (1.0) | ja (1.0) | ja (1.0) | ja (1.0) |
Jakarta Server Faces (JSF), tidligere JavaServer Faces | brukes til å integrere komponenter for brukergrensesnitt på nettsteder og til å definere navigering. | Nei | ja (1.2) | ja (2.0) | ja (2.2) | ja (2.3) |
Uttrykksspråk (EL) | Nei | Nei | ja (2.2) | ja (3.0) | ja (3.0) | |
Jakarta Standard Tag Library (JSTL), tidligere JavaServer Pages Standard Tag Library | er en samling av JSP- koder for strukturering, XML, SQL , internasjonalisering og så videre | Nei | ja (1.2) | ja (1.2) | ja (1.2) | ja (1.2) |
Kontekster og avhengighetsinjeksjon (CDI) | er en teknikk for å sette felt i henhold til inversjon av kontroll- prinsippet. Det lar utvikleren kombinere forskjellige tekniske sammenhenger med hverandre. Det forbinder også JSF med EJB. | Nei | Nei | ja (1.0) | ja (1.2) | ja (2.0) |
Java API for WebSocket (WebSocket) | Bruker WebSockets til å sende meldinger til JavaScript-nettleserapplikasjoner fra Java-prosesser som kjører på serversiden. | Nei | Nei | Nei | ja (1.0) | ja (1.1) |
Java API for JSON Processing (JSON-P) | Nei | Nei | Nei | ja (1.0) | ja (1.1) | |
Batch-applikasjoner for Java-plattformene (Batch) | Nei | Nei | Nei | ja (1.0) | ja (1.0) | |
Validering av bønner | Nei | Nei | ja (1.0) | ja (1.1) | ja (2.0) | |
Administrerte bønner | Nei | Nei | ja (1.0) | ja (1.0) | ja (1.0) | |
Samtidige verktøy for Java EE | Nei | Nei | Nei | ja (1.0) | ja (1.0) | |
Avskjærere | Nei | Nei | ja (1.1) | ja (1.2) | ja (1.2) | |
Vanlige merknader for Java-plattformen | Nei | Nei | ja (1.1) | ja (1.2) | ja (1.3) | |
Autentiseringstjenesteleverandørgrensesnitt for containere (JASPIC) | Nei | Nei | ja (1.0) | ja (1.1) | ja (1.1) | |
API for Enterprise Edition Management | Nei | Nei | ja (1.1) | ja (1.1) | ja (1.1) | |
API for implementering av Enterprise Edition | Nei | Nei | ja (1.2) | ja (1.2) | ja (1.2) | |
Java EE Security API | Nei | Nei | Nei | Nei | ja (1.0) |
Implementeringer
En implementering av Jakarta EE-standarden kan også sertifiseres av Oracle for den respektive versjonen. Dette bekrefter den grunnleggende kompatibiliteten til applikasjonene mellom serverne. Imidlertid viser det seg ofte at det å portere en applikasjon fra en Jakarta EE-server til en annen er forbundet med problemer. Produsentavhengige biblioteker brukes noen ganger ubevisst.
Komplett Jakarta EE-servere
Gjeldende status for sertifiseringen (i henhold til Oracle TCK) vises i parentes.
Åpen kildeserver
- Apache Geronimo (bruker enten Apache Tomcat eller Jetty ) (Java EE 6 Fullprofil og Webprofil)
- WildFly (tidligere JBoss) ( Apache Tomcat eller Undertow) (Java EE 8 Fullprofil og Webprofil, Jakarta EE 8 Fullprofil)
- JOnAS (bruker Apache Tomcat eller Jetty ) (Java EE 6-webprofil)
- GlassFish (Java EE 8 fullprofil og webprofil, Jakarta EE 8 fullprofil og webprofil)
- Payara Server (Jakarta EE 8 Full profil)
- Open Liberty (Jakarta EE 8 Full profil og webprofil)
Kommersielle servere
- ATG Dynamo Application Server (DAS) (Java EE 1.3)
- Oracle WebLogic siden overtakelsen av BEA av Oracle i 2008 (Java EE 7 Full Profile)
- Oracle Application Server (Java EE 5)
- Orion Application Server
- SAP NetWeaver Application Server (Java EE 5)
- SAP Cloud Platform (Java EE 7 Web Profile)
- IBM WebSphere Application Server (WAS) (Java EE 8 Fullprofil og Webprofil)
- JBoss EAP (Java EE 8 Fullprofil og Webprofil)
Distribusjon av Jakarta EE-servere
I 2007 ble følgende antall brukere av kjente Java EE-servere publisert. Under Brukere kan du finne antall selskaper og organisasjoner som har lisensiert den respektive serveren, eller, i tilfelle JBoss, har inngått en vedlikeholdskontrakt . JBoss anslår at det er totalt 10.000 brukere av JBoss Enterprise Application Platform.
Jakarta EE-server | antall brukere |
---|---|
IBM WebSphere Application Server | 75.000 |
Oracle Application Server | 32.000 |
BEA WebLogic | 15.000 |
SAP NetWeaver Application Server | 12.000 |
SUN Sun Java System Application Server (GlassFish) | 3000 |
JBoss Application Server (WildFly) | 1000 |
Separat nettbeholder (servlet / JSP container)
Separat EJB-beholder
- Apache OpenEJB - Open Source
Andre Java-plattformer
Se også
litteratur
- Alexander Salvanos: Utvikler profesjonelt med Java EE 8 . Rheinwerk Verlag, 2018, ISBN 978-3-836-24353-7 .
- Alexander Salvanos: Utvikler profesjonelt med Java EE 7 . Galileo Press, 2014, ISBN 978-3-8362-2004-0 .
- Bill Shannon, Mark Hapner, Vlada Matena: Java 2 Platform, Enterprise Edition . Addison-Wesley, 2000, ISBN 0-201-70456-0 .
- Inderjeet Singh, Beth Stearns, Mark Johnson: Designing Enterprise Applications with J2EE Platform . 2. utgave. Addison-Wesley, 2002, ISBN 0-201-78790-3 .
- Inderjeet Singh, Sean Brydon, Greg Murray: Designing Web Services with the J2EE 1.4 Platform . Addison-Wesley, 17. juni 2004, ISBN 0-321-20521-9 .
- Jason Hunter, William Crawford: Java Servlet Programming . 2. utgave. O'Reilly, 1. april 2001, ISBN 0-596-00040-5 .
- Bruce W. Perry: Java Servlet & JSP Cookbook . O'Reilly, 1. januar 2004, ISBN 0-596-00572-5 .
- Hans Bergsten: JavaServer-sider . 3. utgave. O'Reilly, 1. desember 2003, ISBN 0-596-00563-6 .
- Marty Hall, Larry Brown: Core Servlets og JavaServer Pages . Prentice Hall PTR, 2004, ISBN 0-13-089340-4 .
- Richard Monson-Haefel, Bill Burke, Sacha Labourey: Enterprise JavaBeans . 4. utgave. O'Reilly, 30. juni 2004, ISBN 0-596-00530-X .
- Kevin Boone: Applied Enterprise JavaBeans Technology . Prentice Hall PTR, 1. desember 2002, ISBN 0-13-044915-6 .
- Richard Monson-Haefel, David A. Chappell: Java Message Service . O'Reilly, 1. desember 2000, ISBN 0-596-00068-5 .
- Rahul Sharma, Beth Stearns, Tony Ng: J2EE Connector Architecture og Enterprise Application Integration . Addison-Wesley, 1. desember 2000, ISBN 0-201-77580-8 .
- Jonathan Bruce, Jon Ellis, Maydene Fisher: JDBC API Tutorial and Reference . 3. Utgave. Addison-Wesley, 2003, ISBN 0-321-17384-8 .
- Rosanna Lee, Scott Seligman: JNDI API Tutorial and Reference . Addison-Wesley, 1. juni 2000, ISBN 0-201-70502-8 .
- Steve J. Perry: Java Management Extensions . O'Reilly, juli 2002, ISBN 0-596-00245-9 .
- Kjønn: Enterprise Java Servlets . Addison-Wesley, ISBN 0-201-70921-X .
weblenker
- Gjeldende spesifikasjoner for Java EE Oracle, engelsk
- Offisielt Java EE-nettsted fra Oracle, engelsk
- Offisiell Eclipse Enterprise for Java (EE4J) nettside til Eclipse Foundation, engelsk
- Offisiell Java EE 6-opplæring fra Oracle, engelsk
- Eric Jendrock et al.: Java EE 7 Tutorial. Oracle, september 2014, åpnet 19. februar 2015 (engelsk, også tilgjengelig som JEETT [PDF]).
Individuelle bevis
- ↑ Christopher Guindon: Eclipse GlassFish 5.1 er utgitt | Eclipse Foundation. Hentet 5. april 2019 .
- ↑ Heise online: Applikasjonsserver GlassFish 5.1 forbereder overgangen til Jakarta EE. Hentet 5. april 2019 .
- ^ Wayne Beaton: Formørkelse Jakarta EE TCK. 22. mai 2018, åpnet 5. april 2019 .
- ^ Wayne Beaton: Formørkelse GlassFish. 10. mai 2018, åpnet 5. april 2019 .
- ^ Will Lyons: Bakgrunn om Oracles bidrag til Jakarta EE. 24. april 2018, åpnet 5. april 2019 .
- ↑ Wayne Beaton: EE4J FAQ | Eclipse Foundation. Hentet 5. april 2019 .
- ↑ Wayne Beaton: Formørkelse EE4J. 24. oktober 2017, åpnet 5. april 2019 .
- ↑ heise online: Jakarta EE: Eclipse Foundation tar ansvar for Enterprise Java. Hentet 5. april 2019 .
- ^ Wayne Beaton: Eclipse Jakarta EE-plattform. 27. juni 2018, åpnet 5. april 2019 .
- ^ Mike Milinkovich: Oppdatering av Jakarta EE-rettigheter til Java-varemerker. I: Livet ved formørkelse. 3. mai 2019, åpnet 14. mai 2019 .
- ↑ Lars Röwekamp: Jakarta EE: Begynnelsen på slutten eller sjansen for en ny begynnelse? I: heise-utvikler. Hentet 14. mai 2019 .
- ↑ Wayne Beaton: EE4J FAQ | Eclipse Foundation. Hentet 5. april 2019 .
- ↑ Java EE 8 er offisielt utgitt
- ↑ a b c d e f g h i Java EE Compatibility. Hentet 4. april 2019 .
- ↑ a b c d e Jakarta EE Compatible Products. Hentet 11. oktober 2019 .
- ↑ Liste over API-spesifikasjoner (JSR) hos Oracle
- ^ John R. Rymer: Forrester Wave ™: Application Server Platforms, Q3 2007 . Red.: Forrester Research . 11. juli 2007.