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 A JavaSoft közösség alakította ki Összefogja az egyéni komponens szabványokat A skálázható, moduláris alkalmazás modellt támogatja Plug and Play komponensek Skálázható tranzakció infrastruktúra Rugalmas telepíthetőség 100% tiszta Java, biztosítja a platformfüggetlenséget A környezeti beállítások elkülönülnek az alkalmazásoktól
J2EE Alkalmazások A J2EE központi koncepciója A J2EE alkalmazás a fejlesztés és a telepítés alapegysége Tartalmaz Web Modulokat (WAR állományok), felhasználói felület, amely HTML, JSP állományokból és servlet-ekből áll EJB Modulok (EJB JAR állományok), ujrahasználható komponensek Kliens modulok (kliens JAR állományok), a távoli alkalmazás kód elérésére Csomagolás (EAR állományok), fűggőségek
Alkalmazás könyvtárstruktúrája myapp META-INF application.xml myejb META-INF myweb ejb-jar.xml WEB-INF web.xml classes lib *.html, *.jsp
Az Archív állomány típusok JAR Simple Java archive Alkalmazás állományok összecsomagolására szolgál (pl. class-ok, képek stb.) Része lehet a WAR és az EAR állományokat Része lehet a könyvtár path-oknak (pl. classpath)
Az Archív állomány típusok EJB JAR Egy speciális JAR állomány EJB-k csomagolására Rögzített könyvtár struktúra 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 Speciális archív fájl J2EE kompatibilis Web alkalmazások számára Rögzített könyvtár struktúra Tartalmaz Web alkalmazás telepítési leírást myweb WEB-INF web.xml classes lib A servlet kódot és a bean-eket tartalmazza nem standard JAR állományban A szükséges fájlokat tartalmazza, standard JAR állományokban
Az Archív állomány típusok EAR Speciális archív fájl J2EE kompatibilis vállalati (Enterprise) alkalmazásokhoz Tartalmaz telepítési leírást Tartalmazhat web modulokat (WAR) Tartalmazhat EJB modulokat Tartalmazhat kliens könyvtárakat
Oracle9iAS Containers for J2EE (OC4J) Teljes J2EE Alkalmazás platform Az egyik legjobb Java támogatás J2EE támogatás Java tárolt eljárások, SQLJ, JDBC Vállalati J2EE Szerver Nagyteljesítményű, Skálázható és megbízható Integrált, Hatékony fejlesztőeszközök JDeveloper Business Components for Java (BC4J) 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 EJB Servletek JSP JDBC JNDI JMS (1) Részleges EJB 2.0 implementáció (2) Részleges Servlets 2.3 implementáció Oracle9iAS 1.1 (1) 2.2 (2) 1.1 2.0 1.2 1.0.2
OC4J Servletek OC4J teljeskörűen támogatja a Java Servlet 2.2 specifikációját Standard J2EE Web alkalmazás modell Támogatja a standard Web alkalmazás telepítési leírásokat Támogatja az elosztott Web alkalmazásokat A Web alkalmazások állapotát a fürt más szervereire is replikálja Nem kell a kódon változtatni, vagy egyéni API-kat támogatni
Servlet 2.3 Új Tulajdonságok Servlet Filter-ek Egy egyszerű Java class, ami egy HTTP kérést, vagy választ elemez, illetve átalakít. Nem a tartalom létrehozásáért felelős Servlet Filter láncolás Filterek csoportja, amelyek együttesen egy HTTP kérést, választ, vagy fejlécet elemez, illetve átalakít. A web.xml állományban configurálható Kliens Servlet Filter Audit Servlet Filter Azonosítás A megcímzett Servlet 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
OC4J Java Server Pages OC4J teljesen támogatja a Java Server Pages 1.1 specifikációt 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 Szolgáltatás: email, keresés, DB hozzáférés, Java Markup Language 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 Container Managed Persistence (CMP) és Bean Managed Persistence (BMP) az Entity bean-ek esetében Szabványos J2EE EJB model támogatása Szabványos EJB XML telepítési leírások Fejlesztőbarát Az új és módosított alkalmazások autómatikus telepítése Kliens gyökök generálása telepítési időben Automatikus keresési metódus generálás 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 2-es és 4-es típusú driver-ek támogatása 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 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 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 Kis méretű, memóriában futó JMS implementáció RMI Optimalizált RMI protokollt használ (ORMI) HTTP Nagy teljesítményű HTTP(s) szerver
OC4J Architektúra Diagramm Kliens HTTP Apache mod_proxy HTTP ORMI/HTTP HTTP H T T P O R M I Web Container EJB Container JNDI JMS JDBC JTA 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 Kliens web alkalmazások felé. A terhelés elosztó elkapja a kérést 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 Terhelés elosztó Server A létrehozza és visszaküldi a választ 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 Cluster Sziget 2 HttpSession
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 Cluster Sziget 2 HttpSession
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 Cluster Sziget 2 HttpSession
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 Kliens Terhelés elosztó Server B létrehozza a választ a replikált HttpSession objektum segítségével és visszaküldi Application Server Cluster A B C X Cluster Sziget 1 Cluster Sziget 2 HttpSession
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 Cluster Sziget 2 HttpSession