EAR (fájlformátum)
Enterprise ARchive | |
Fájlkiterjesztés | .ear |
Fejlesztő | Sun Microsystems |
Formátum típusa | adattömörítés |
Konténerformátuma ennek | JSP, Java Servlet, JEE modulok |
Az Enterprise ARchive (EAR) egy olyan Java EE által használt fájl formátum, amely egy vagy több modult tartalmaz egy egyszerű archív állományban. A modulok együttesen vagy párhuzamosan telepíthetők egy alkalmazásszerverre. Az állomány legalább egy XML fájlt tartalmaz, amit telepítési leíró fájlnak neveznek, és azt írja le, hogyan kell telepíteni a modulokat. Leggyakrabban Maven vagy Ant használható EAR fájl készítésére.
Fájlstruktúra
[szerkesztés]Egy EAR fájl nem más mint egy sztenderd JAR fájl (és egyben egy Zip fájl is) .ear kiterjesztéssel. A fájl tartalmazza a META-INF
nevű metaadat könyvtárat egy v. több telepítésleíró fájllal (application.xml), valamint egy vagy több alkalmazásmodult reprezentáló entry-t (jar fájlokat).
Telepítésleírók
[szerkesztés]A telepítésleírók olyan XML dokumentumok, amelyek alkalmazások, modulok vagy szoftver komponensek telepítési beállításaival kapcsolatos információkat tartalmaznak, mint a metódusok tranzakciós attribútumai vagy az egyes EJB-kre vonatkozó biztonsági beállítások. A telepítési adatok deklaratív jellegéből adódóan könnyedén megváltoztathatóak, anélkül, hogy az általuk érintett forrásokban bármilyen módosítást kellene végrehajtani. A leírókat a J2EE szerver használja fel. Ezekből a fájlokból olvassa ki, miképp kezelje az EAR fájlban lévő elemeket.
Kétféle telepítésleíró létezik. A J2EE leírót a J2EE specifikáció definiálja és a J2EE implementáció független telepítési beállításokat tartalmazza. A másik típus a runtime leíró. Idekerülnek az implementáció-specifikus beállítások.
Modulok
[szerkesztés]Az EAR fájl tartalmazhat:
- Webmodult .war kiterjesztéssel (olyan telepítési egység, amely egy vagy több webkomponenst, egyéb erőforrásokat és egy webalkalmazás telepítésleírót tartalmaz, a webmodul könyvtárak és fájlok hierarchiáját tartalmazhatja egy sztenderd webalkalmazás formátumában)
- POJO-t (java class fileok, amelyek .jar fájlformátumban telepíthetők)
- Enterprise Java Bean modult (amelynek .jar a kiterjesztése, és olyan leírókat tartalmaz a saját META-INF könyvtárában, amelyek meghatározzák a perzisztens class fájlok telepítésének módját telepítéskor, a telepítés után pedig a Message Bean-ek és a Session Bean-ek elérhetővé válnak távolról, valamint az Entitás Bean-ek elérhetők lesznek más komponensek és opcionálisan a távoli kliensek számára)
- Resource Adapter modult, ami egy jar fájl .rar kiterjesztéssel. A modul java interfészeket, osztályokat, natív könyvtárakat, dokumentációkat és az ezeket leíró Resource Adapter telepítésleíró állományt tartalmazza. A modulba csomagolt elemek együttesen megvalósítják Connector Architecture-t egy adott EIS-hez, melyeket az alkalmazásszerver telepíthet (deployment).
Class elkülönülés (isolation)
[szerkesztés]A legtöbb alkalmazásszerver a class-okat a telepített EAR fájlból tölti be izolált Java classloaderek fáján keresztül, izolálva az alkalmazást más alkalmazásoktól, de mindvégig megosztva a class-okat a telepített modulok között. A telepített WAR fájl képes létrehozni a JAR fájlban definiált class példányokat, de mindig csak a saját EAR fájljához tartozóan. Az izoláció teljes szeparációval teszi lehetővé a statikus singleton-t használó alkalmazások párhuzamos futását (pl. Log4J). Lehetővé teszi továbbá az alkalmazások és könyvtárak különböző verzióinak egymás melletti telepítését is.
A JBoss alkalmazás szerver pl. nem izolálja a telepített komponenseket (a megoldási mód vitaható). Az egyesített classloader tervezés úgy csökkenti a túlzott kommunikációs terheket a futó alkalmazások között, hogy a class adatait megosztja referenciák v. egyszerű másolatokon keresztül, megóvja a fejlesztőket a classloader fa bonyolultságától. Megvéd attól, hogy független könyvtárak különböző verzióit telepítsük szeparált alkalmazásokba. Míg a JBoss 4.0.2. hierarchikus classloadereket használ, kompatibilitási okokból a 4.0.3-ban visszatértek egyesített classloaderekhez.
META-INF könyvtár
[szerkesztés]A META-INF
könyvtár mindig tartalmazza az application.xml
telepítési leírót (másként Java EE telepítési leíró). A telepítési leíró XML a következő összetevőket tartalmazza:
icon
: megadja azon képek elhelyezkedését, amelyek az alkalmazást reprezentálják. A tag-en belül a következő altagok használhatók:small-icon
éslarge-icon
.display-name
: alkalmazás azonosítódescription
: szöveges leírásmodule
: archív állomány összetevőjesecurity-role
: globális jogosultsági szerepkör (multiplicitás: 0...*)
Minden module
elem tartalmazhat egy ejb
-t, web
-t vagy java
elemet, melyek leírják az egyes modulokat az alkalmazáson belül.
A Web modul context-root
-ot biztosít a web modul URL-jével.
A Java EE telepítési leírók mellett létezhetnek futás idejű telepítési leírók is (multiplicitás: 0...*), melyeket az implementáció-specifikus Java EE paraméterek konfigurálására használhatjuk.
Kapcsolódó szócikkek
[szerkesztés]További linkek
[szerkesztés]- http://java.sun.com/j2ee/1.4/docs/glossary.html
- http://java.sun.com/javaee/5/docs/tutorial/doc/bnaby.html#indexterm-47
- Servlet tutorial
Fordítás
[szerkesztés]- Ez a szócikk részben vagy egészben az EAR (file format) című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.