310 likes | 385 Views
Bevezetés a J2EE világába . Kerekes András kerekes.andras@alerant.hu http://www.alerant.hu. Tartalom. Bemutatkozás Elosztott rendszerek motívációja J2EE standard és architekrúra BEA WebLogic Server, mint alkalmazás szerver. A BEA cég.
E N D
Bevezetés a J2EE világába Kerekes András kerekes.andras@alerant.hu http://www.alerant.hu
Tartalom • Bemutatkozás • Elosztott rendszerek motívációja • J2EE standard és architekrúra • BEA WebLogic Server, mint alkalmazás szerver
A BEA cég • BEA a világ vezető alkalmazás infrastruktúra szállítója • Több mint 1 milliárd $ bevétel • 15,000 ügyfél • Irodák 77 városban a világon • 3,200 dolgozó • 28negyedéve pozitív cash-flow
A BEA Magyarországon • Multikon és hazai partnereken keresztül • HP, Accenture, Bull, Epam (Phatom), IQSYS, Synergon • Disztribútoron – Aleranton – keresztül • BEA elkötelezett partner • Cégünk hivatalos BEA disztribútor és hivatalos oktató központ • BEA – HP – Alerant együttműködés
Nemzetközi BEA referenciák Pénzügy Telekom Ipar Logisztika Kormányzat Egyéb
Hazai BEA referenciák Pénzügy Telekom Ipar Logisztika Kormányzat Egyéb
Az Alerant Rt. • Informatikai projektek vezetése és kivitelezése • Egyedi alkalmazásfejlesztés (Java, J2EE) • Alkalmazás integráció • Portál kialakítás • BEA termék értékesítés és support • Tanácsadás • Mission Critical Support • BEA alapú alkalmazások • HP-vel együttműködve • Oktatás • Hivatalos BEA tananyagok magyar nyelven
Számok • Tulajdonosok: 100%-ban magánszemélyek • Alaptőke: • 2003 Q4: 20mFt, • 2004 Q4: 100mFt • Létszám: • ~30 fő (architect, tervező csapat) • Minimális management overhead • 2004 évi eredmény 550mFt • 2005 évi eredmény 1100 mFt
Szakértelem • Technológiai tudás: • J2EE-BEA alapú alkalmazásfejlesztés • Alkalmazás integráció • Portál és tudásmenedzsment technológiák • Szakértői tudás: • Telekommunikáció • Pénzügy (banki rendszerek) • Gyógyszeripar • Minőség • Tevékenységünkben meghatározó szerepe van a J2EE technológiának és a BEA termékeknek
Elosztott rendszerek mögötti motíváció • Komplex, nagy bonyolultságú rendszerek létrehozása • Könnyebb kezelhetőség • Hatékony, megbízható működés • Magas rendelkezésre állás • Hatékonyabb költségbecslés • ...
Alapfogalmak • Elosztott rendszer (distributed system) • Rendelkezésre állás (availability) • Magas rendelkezésre állás (high availability 24/7/365) • Terhelés elosztás (load balancing) • Hibatűrés (failover) • Skálázhatóság (scalability) • Karbantarthatóság (maintainability)
Web Szerver • Web-es tartalmat szolgáltatnak • HTTP, FTP, stb... Segítségével kommunikálnak • Képesek CGI request-ek kezelésére • Néhány kérést továbbítanak az más szerverek felé, amelyek alkalmasak ezen kérések kezelésére (pl.: Alkalmazás Szerver)
Alkalmazás Szerver • Az Alkalmazás Szerverre telepített (deployed) alkalmazások futtatásához és eléréséhez szükséges szolgáltatásokat nyújtja • Úgy képzelhetjük el, mint a nagy, összetett, elosztott rendszerek CPU-ja, menedszeli az összes aktivitást, ami az elosztott rendszerben történik • Ahhoz, hogy ezt a feladatot el tudja látni, egy valamire való Alkalmazás Szervernek nyújtania kell alapvető szolgáltatásokat, pl.: message-oriented middleware-t, tranzakció kezelést, perzisztencia kezelést, e-mail küldést, fogadást, stb..., illetve támogatnia kell a komponenseket, amik képesek ezeket a szolgáltatásokat felhasználni
Hogyan segítenek a szabványok? • Az elosztott rendszerek nagy bonyolultsággal rendelkeznek • Komplex problémákat szétbontja modulokra és ezekhez ad megoldásokat • Pl. hálózati szabványok: nem kell foglalkoznunk a rendszer komponensei közötti kommunikációval • A szoftver szabványok az alkalmazásfejlesztés bonyolultságát hívatottak csökkenteni • Minél több nagy szoftvergyártó tömörül egy szabvány mögött, az annál értékesebb, annál szélesebb körben alkalmazható • Lehetővé teszi, hogy a projekt költségeinek mind nagyobb része fordulhasson a valós üzleti igény kielégítésére
A J2EE szabvány (standard) • A Java Platform 2 Enterprise Edition egy teljes specifikáció • Java-ban dolgozhatunk • A J2EE leveszi a vállunkról az elosztott rendszerek használatával járó felelősséget • Az alkalmazásunk hodozható lesz • A BEA WebLogic Server a J2EE specifikáció egy implementációja
Komponens technológia • A komponensek önálló szoftveregységek, melyek üzleti szolgáltatást nyújtanak a klienseiknek és egy adott infrastruktúrában futnak • A komponens csak az üzleti szolgáltatás megvalósításához szükséges kódot tartalmazza • Az infrastruktúra biztosítja a különféle szabványos szolgáltatásokat • (Például egy irodaház ugyanazokat a szolgáltatásokat biztosítja minden irodájának)
Konténerek • Biztosítja a futtatási környezetet a komponensek számára • „Lehallgatja” a kliens és a komponens közötti kommunikációt • Gondoskodik a szabványos szolgáltatások nyújtásáról a komponensek felé: • Tranzakció kezelés • Név- és címtár kezelés • Erőforrás „pooling” • Security kezelés • Konkurens hozzáférés kezelése • Perzisztencia kezelés • Adminisztrációs interfészek • Terhelés elosztás • Hibatűrés
Java Servlet-ek • A Servlet-ek olyan Java programok, amelyek kérés-válasz modell alapján működnek. • A leggyakoribb és legismertebb fajtája a HTTPServlet, amely HTTP kérést fogad és HTTP választ generál • Szerver oldali objektumok, hozzáférnek az összes szerver oldali erőforráshoz, melyek segítségével dinamikus választ generálnak • A Servlet egy független szálként fut a web konténerben, amely a környezeteként funkcionál: • A web konténer hozza létre és szünteti meg a Servlet-et, valamint felügyeli a Servlet-hez való hozzáférést is.
JSP (JavaServer Pages) • A JSP-k olyan HTML lapok, melyek Java kódot tartalmaznak • Dinamikus válaszokat generál (mint a Servlet) • Hordozható, mivel Java • Elkülöníti egymástól a megjelenítést és a dinamikus tartalom generálását
EJBs (Enterprise JavaBeansTM) • Az EJBs specifikáció definiálja • az EJB (azaz a komponens) felépítését • a konténer szerkezetét, amiben az EJB-k működnek • és a kommunikáció módját a kliensekkel. • Az EJB képes elosztott környezetben működni • Újrafelhasználható, mint komponens • A BEA WebLogic Server EJB szerver, illetve tartalmaz EJB konténert is.
JDBC (Java Database Connectivity) • Szabványos interfész adatbázisok eléréséhez • Java programokból használható • Az implementációt a DBMS gyártója szállítja
JNDI (Java Naming & Directory Interface) • Szabványos interfész név- és címtár szerverek eléréséhez Java-ból • Név- és címtárak: • Elemek hierarchikus tárolása • Elemek kinyerése, elemek közötti keresés és elemekhez elnevezések hozzárendelése • Elosztott rendszerek közös objektumainak elérhetőségét biztosítja szabványos módon
JTA (Java Transaction API) • Tranzakció: • Egy tranzakción belüli műveletek zárt egységet képeznek • A tranzakciónban résztvevő rendszerek mindvégig konzisztensek maradnak, vagyis egy értelmes állapotból értelmes állapotba kerülnek • A tranzakció okozta semmilyen változás nem látható más műveletek számára, amíg a tranzakció sikeresen be nem fejeződött • A tranzakciók által okozott állapotváltozások túlélik az alkalmazás esetleges hiba miatti leállását • Szabványos Java API a tranzakciók programon belüli elhatárolására • A WebLogic Server lokális és elosztott tranzakciókat is támogatja
JMS (Java Message Service) • Szabványos Java interfész üzenet-orientált middleware komponensek kezeléséhez • Point-to-Point kommunikáció • Publish/Subscribe Kommunikáció • Garantált üzenet kézbesítés • Tranzakcionális • Asszinkron kommunikációt tesz lehetővé
JAAS (Java Authentication and Authorization Service) • Szereplők azonosítása és erőforrásokhoz való hozzáférés engedélyezése • Az authorizáció (ékes magyar szóval élve) három alapfogalmon nyugszik: • Felhasználó (user) • Csoport (group) • Szerep (role)
JMX (Java Management Extension) • Szabványos felületen keresztül menedzselhetjük az eszközeinket Java-ból • Elválasztja a menedzselt eszközt a konfigurálójától – nem lényeges, hogy hol van a menedzselni kívánt eszköz • A technológia alapkövei az MBean-ek (Managed Bean) • JDBC analógia (DBMS = menedzselt eszköz, JDBC Driver = MBean, JDBC kliens = JMX kliens) • Elosztott rendszerek konfigurálását központosítja • A konfigurált alkalmazás leállítása nélkül módosíthatók a paraméterek • Tipikus példák: JNDI nevek, adminisztratív e-mail címek, stb...
Web Services • Szerver oldali szolgáltatások, alkalmazás-alkalmazás kommunikációra van kitalálva • Web-en elérhetőek jól ismert protokollok segítségével • XML-lel van leírva a szerkezetük • XML segítségével kommunikálnak • Registry-ben vannak regisztrálva • Teljesen platformfüggetlen (és tényleg!) • SOA