EAR (fájlformátum)

A Wikipédiából, a szabad enciklopédiából
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 v. 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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, hogy hogyan 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 | forrásszöveg szerkesztése]

Az EAR fájl tartalmazhat:

  • Webmodult .war kiterjesztéssel (olyan telepítési egység, amely egy v. 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 és large-icon.
  • display-name: alkalmazás azonosító
  • description: szöveges leírás
  • module: archív állomány összetevője
  • security-role: globális jogosultsági szerepkör (multiplicitás: 0...*)

Minden module elem taralmazhat 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 | forrásszöveg szerkesztése]

További linkek[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  • 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.