Oracle Containers for Java - j2ee alkalmazás szerver funkciók Molnár Balázs Oracle Hungary
Mi is a J2EE? –
Szabványgyűjtemény Java alkalmazások számára y A JavaSoft közösség alakította ki y Összefogja az egyéni komponens szabványokat
–
A skálázható, moduláris alkalmazás modellt támogatja y „Plug and Play” komponensek y Skálázható tranzakció infrastruktúra
–
Rugalmas telepíthetőség y 100% tiszta Java, biztosítja a platformfüggetlenséget y A környezeti beállítások elkülönülnek az alkalmazásoktól
J2EE Alkalmazások –
A J2EE központi koncepciója y A J2EE alkalmazás a fejlesztés és a telepítés alapegysége
–
Tartalmaz y Web Modulokat (WAR állományok) , felhasználói felület, amely HTML, JSP állományokból és servlet-ekből áll y EJB Modulok (EJB JAR állományok) , ujrahasználható komponensek y Kliens modulok (kliens JAR állományok), a távoli alkalmazás kód elérésére y Csomagolás (EAR állományok), fűggőségek
Alkalmazás könyvtárstruktúrája myApp META-INF application.xml myEJB META-INF ejb-jar.xml myWeb WEB-INF web.xml classes lib *.html, *.jsp
Az Archív állomány típusok
–
JAR y Simple Java archive y Alkalmazás állományok összecsomagolására szolgál (pl. class-ok, képek stb.) y Része lehet a WAR és az EAR állományokat y Része lehet a könyvtár path-oknak (pl. classpath)
Az Archív állomány típusok
–
EJB JAR y Egy speciális JAR állomány EJB-k csomagolására y Rögzített könyvtár struktúra y Tartalmaz telepítési leírást az EJB komponensekhez myEJB META-INF ejb-jar.xml EJB Classes
A bean-ek hez tartozó class fájlokat tartalmazza általában csomagolva
Remote, Home és Bean class-ok
Az Archív állomány típusok –
WAR y Speciális archív fájl J2EE kompatibilis Web alkalmazások számára y Rögzített könyvtár struktúra y Tartalmaz Web alkalmazás telepítési leírást myWeb WEB-INF web.xml
A servlet kódot és a bean-eket tartalmazza nem standard JAR állományban
classes lib
A szükséges fájlokat tartalmazza, standard JAR állományokban
Az Archív állomány típusok
–
EAR y Speciális archív fájl J2EE kompatibilis vállalati (Enterprise) alkalmazásokhoz y Tartalmaz telepítési leírást y Tartalmazhat web modulokat (WAR) y Tartalmazhat EJB modulokat y Tartalmazhat kliens könyvtárakat
Oracle9iAS Containers for J2EE (OC4J) Teljes J2EE Alkalmazás platform
y Az egyik legjobb Java támogatás y J2EE támogatás y Java tárolt eljárások, SQLJ, JDBC
y Vállalati J2EE Szerver y Nagyteljesítményű, Skálázható és megbízható
y Integrált, Hatékony fejlesztőeszközök y JDeveloper y Business Components for Java (BC4J)
y Integrált Felügyelő eszközök
Oracle9iAS Containers for J2EE (OC4J) Teljes J2EE Implementáció
Teljes J2EE 1.2 Implementáció J2EE Kompatibilitás
Oracle9iAS
EJB
1.1(1)
Servletek
2.2(2)
JSP
1.1
JDBC
2.0
JNDI
1.2
JMS
1.0.2
(1) Részleges EJB 2.0 implementáció (2) Részleges Servlets 2.3 implementáció
OC4J Servletek – –
OC4J teljeskörűen támogatja a Java Servlet 2.2 specifikációját Standard J2EE Web alkalmazás modell y Támogatja a standard Web alkalmazás telepítési leírásokat
–
Támogatja az elosztott Web alkalmazásokat y A Web alkalmazások állapotát a fürt más szervereire is replikálja y Nem kell a kódon változtatni, vagy egyéni API-kat támogatni
Servlet 2.3 Új Tulajdonságok –
–
Kliens
Servlet Filter-ek y Egy egyszerű Java class, ami egy HTTP kérést, vagy választ elemez, illetve átalakít. y Nem a tartalom létrehozásáért felelős Servlet Filter láncolás y Filterek csoportja, amelyek együttesen egy HTTP kérést, választ, vagy fejlécet elemez, illetve átalakít. y A web.xml állományban configurálható Servlet Filter Audit
Servlet Filter Azonosítás
Naplózza a hozzáféréseket; Továbbküldi a kérést
Ellenőrzi a felhasználók jogosultságait; Ha lehetséges továbbítja a kérést a Servlethez
HttpVálasz
A megcímzett Servlet
OC4J Java Server Pages –
OC4J teljesen támogatja a Java Server Pages 1.1 specifikációt y Minden standard JSP tag-et, definíciót és stílus-t támogat
–
Előre beépített egyéni tag könyvtárakat tartalmaz y Szolgáltatás: email, keresés, DB hozzáférés, Java Markup Language y Cache: JSP lap cache (JESI), közösen az Akamai-al
–
Kibővített hiba jelentés
OC4J Enterprise JavaBeans –
Teljeskörűen támogatja az EJB 1.1 specifikációt y Container Managed Persistence (CMP) és Bean Managed Persistence (BMP) az Entity bean-ek esetében
–
Szabványos J2EE EJB model támogatása y Szabványos EJB XML telepítési leírások
–
Fejlesztőbarát y Az új és módosított alkalmazások autómatikus telepítése y Kliens gyökök generálása telepítési időben y Automatikus keresési metódus generálás y Automatikus tábla létrehozás, törlés
OC4J Java Adatbázis kapcsolódás – –
A JDBC 2.0 specifikáció teljes támogatása Tartalmaz Oracle JDBC driver-eket y 2-es és 4-es típusú driver-ek támogatása y Oracle 8, 8i, 9i -hez módosítás nélkül használható
–
A JDBC 2.0 kiegészítések is implementálva y Connection pooling, továbbfejlesztett típusok támogatása, finomított eredményhalmazok, JNDI adatforrások
–
Tanúsítva használható Merant Type 4 JDBC driverrel y Hozzáférést biztosít az Informix, Sybase, DB2, SS7 adatbázishoz
OC4J Egyéb API-k és Szolgáltatások – – –
JNDI JTA JMS y Kis méretű, memóriában futó JMS implementáció
–
RMI y Optimalizált RMI protokollt használ (ORMI)
–
HTTP y Nagy teljesítményű HTTP(s) szerver
mod_proxy
HTTP
Apache
OC4J Architektúra Diagramm
HTTP
HTTP
H T T P
JNDI Web Container
JDBC
Kliens
ORMI/HTTP
O R M I
JMS
JTA EJB Container
JavaMail JAF
EJB Kliens
OC4J Server Process
Egyszerűen használható beállítások –
8 xml alapú állományon keresztül minden funkció beállítható server.xml default-web-site.xml rmi.xml jms.xml principals.xml data-sources.xml global-web-application.xml application.xml
legfőbb szerver konfiguráció web szerver konfiguráció RMI port, naplók sorok, típusok, portok szerepkörök, felhasználók Adatbázis hozzáférési információ globális Web alkalmazások alap alkalmazás beállítások
Egyszerű működtetni és felügyelni Adminisztrációs konzol
Web Alkalmazás fürtözése Egy alkalmazás szerver cluster • Öt alkalmazás szerver node • Két cluster sziget • Terhelés elosztó folyamat Terhelés elosztó Application Server Cluster
Cluster Sziget 1
Cluster Sziget 2
Web Alkalmazás fürtözése •Mindegyik szerver regisztrálja magát a terhelés elosztó folyamatba induláskor
Terhelés elosztó Application Server Cluster
Cluster Sziget 1
Cluster Sziget 2
Web Alkalmazás fürtözése •A kliens kéréseket továbbít a web alkalmazások felé. •A terhelés elosztó elkapja a kérést
Kliens
Terhelés elosztó Application Server Cluster
A
B
C
Cluster Sziget 1
Cluster Sziget 2
Web Alkalmazás fürtözése •A TE továbbítja a szerverek felé Kliens feldolgozás céljából •Server A előállít egy session-t a kliens számára
•Server A létrehozza és visszaküldi a választ
Terhelés elosztó Application Server Cluster
A
B
C
Cluster Sziget 1
Cluster Sziget 2
Web Alkalmazás fürtözése •Server A elküldi a HttpSession objektumot a cluster sziget többi szerveréhez
Kliens
•Az állapot nem kerül el a többi szigethez
Terhelés elosztó Application Server Cluster
A
B
C
Cluster Sziget 1
HttpSession
Cluster Sziget 2
Web Alkalmazás fürtözése •A következő kérések, az adott klienstől ugyanahhoz a szerverhez továbbítódnak.
Kliens
•HttpSession objektumot folyamatosan karbantartja a sziget többi gépén is
Terhelés elosztó Application Server Cluster
A
B
C
Cluster Sziget 1
HttpSession
Cluster Sziget 2
Web Alkalmazás fürtözése •Server A meghibásodik és leáll Kliens Terhelés elosztó Application Server Cluster
A
B
C
X Cluster Sziget 1
HttpSession
Cluster Sziget 2
Web Alkalmazás fürtözése •A kliens elküldi a következő kérést •A TE ézékeli az A szerver hibáját •A TE átirányítja a kérést egy másik géphez ugyanazon szigeten
A
B
Kliens
•Server B létrehozza a választ a replikált HttpSession objektum segítségével és visszaküldi
Terhelés elosztó Application Server Cluster
C
X Cluster Sziget 1
HttpSession
Cluster Sziget 2
Web Alkalmazás fürtözése •A kliens nem veszi észre az A szerver leállását
Kliens
Terhelés elosztó
•Server B elküldi a HttpSession objektumot a clusterben lévő többi géphez Application Server Cluster
A
B
C
X Cluster Sziget 1
HttpSession
Cluster Sziget 2