Скачать презентацию Programrendszerek Fejlesztése 14 8 1 Tartalom Alkalmazásszerverek alkalmazásszerverek Скачать презентацию Programrendszerek Fejlesztése 14 8 1 Tartalom Alkalmazásszerverek alkalmazásszerverek

b2e906ca6e34cb6db20d4940dfaa0bc9.ppt

  • Количество слайдов: 93

Programrendszerek Fejlesztése 14/8 1 Programrendszerek Fejlesztése 14/8 1

Tartalom Alkalmazásszerverek, alkalmazásszerverek felépítése Java EE alkalmazások és modulok és kezelésük Alkalmazásszerverek kezelése (monitoring, Tartalom Alkalmazásszerverek, alkalmazásszerverek felépítése Java EE alkalmazások és modulok és kezelésük Alkalmazásszerverek kezelése (monitoring, menedzsment) Clustering, Jgroups Alkalmazásszerverek biztonsága Java Connector Architecture

Alkalmazásszerverek Üzleti alkalmazások számára biztosítanak megfelelő infrastruktúrát – Middleware Programozási modell különböző funkciókra (pl. Alkalmazásszerverek Üzleti alkalmazások számára biztosítanak megfelelő infrastruktúrát – Middleware Programozási modell különböző funkciókra (pl. perzisztencia-kezelés) Szabványos és saját (gyártóspecifikus) API-k Rendszerint a következő rétegek vannak: Alkalmazás szerver Kliens Adatbázis Gyakorlatilag futtató környezetként szolgál a rá feltelepített alkalmazások számára Ahhoz, hogy az alkalmazásokat futtatni tudja, azoknak meg kell felelniük bizonyos formai feltételeknek Alkalmazásszerver hardver, operációs rendszer, adatbázis, hálózat, …

Alkalmazásszerverek Java: Ingyenes/szabad: Fizetős JBoss (Red. Hat) Glassfish (Sun) Geronimo (Apache) JOn. AS Web. Alkalmazásszerverek Java: Ingyenes/szabad: Fizetős JBoss (Red. Hat) Glassfish (Sun) Geronimo (Apache) JOn. AS Web. Sphere (IBM) Web. Logic (BEA) OC 4 J (Oracle) . NET: Microsoft IIS +. NET Framework

Architektúra – jellemző modulok Perzisztenciakezelő: Web konténer: Üzleti tranzakciók kezeléséhez nyújt támogatást Nemcsak az Architektúra – jellemző modulok Perzisztenciakezelő: Web konténer: Üzleti tranzakciók kezeléséhez nyújt támogatást Nemcsak az adatbázis-tranzakciók kezelését végzi (arra ott a perzisztenciakezelő), hanem az üzleti logika építőelemeinek (műveletek) tranzakcióba zárásáért és atomi kezeléséért felelős Management interfész: Felhasználói és rendszerkomponensek név alapú elérésére biztosít lehetőséget a komponensek fizikai helyétől függetlenül Tranzakciókezelő: Üzenetküldés (aszinkron kommunikáció) számára biztosít erőforrásokat és szolgáltatásokat Message-driven beanek is ezt használják Címtár (JNDI) kezelő: EJB-modulok (üzleti logika) számára biztosít futási környezetet Java Messaging Services (JMS) kezelő: Web-alapú felhasználói felület számára biztosít futási környezetet EJB konténer: Adatok hosszú távú tárolásához (pl. adatbázisba) biztosít szolgáltatásokat Az alkalmazásszerver egyes komponenseit (rendszer és felhasználói) lehet ezen keresztül vezérelni (beállítások és műveletek) Sok alkalmazásszerver esetében van ehhez web-alapú kliens, ami integrálva van a szerverhez, de jellemzően más formában is elérhető (pl. JMX) Újabban webszolgáltatás-kezelő: Webszolgáltatások számára biztosít futási környezetet

Architektúra - JBoss Mikrokernel alapú: van egy kicsi mag, mint platform, és az alkalmazásszerver Architektúra - JBoss Mikrokernel alapú: van egy kicsi mag, mint platform, és az alkalmazásszerver összes szolgáltatása ezen keresztül kapcsolódik egymáshoz JBoss esetén a mikrokernel a JMX-re (Java Management Extesion) épül Előnyök: JMX egy szabvány Tetszőleges JMX-képes kliens alkalmazás felhasználható a modulok kezeléséhez (web alapú, grafikus vagy konzolos is létezik) Minden modul ugyanúgy kezelhető (JMX -interfészen keresztül) Nagyfokú modularitás: felesleges modulok adott telepítés esetén eltávolíthatók Az egyes modulok velük ekvivalens másikra cserélhetők (pl. perzisztencia: Hibernate Toplink)

Architektúra - Web. Sphere Architektúra - Web. Sphere

J 2 EE alkalmazások és modulok Moduláris felépítésű üzleti alkalmazások, amelyek alkalmazásszerver-környezetben képesek üzemelni J 2 EE alkalmazások és modulok Moduláris felépítésű üzleti alkalmazások, amelyek alkalmazásszerver-környezetben képesek üzemelni J 2 EE modulok típusai: Web modul (WAR): web-alapú felhasználói felületek számára (egyszerű háttérlogikával) EJB modul (JAR): bonyolultabb üzleti logika számára Alkalmazáskliens modul (JAR): nem web-alapú kliens alkalmazások számára Erőforrás-adapter modul (RAR): nem J 2 EE-kompatibilis rendszerekkel való integráció számára Enterprise alkalmazás (EAR): előző négy modultípus egységbe csomagolására

Modulok helye Alkalmazáskliens modul (JAR) Erőforrás-adapter modul (RAR) Web modul (WAR) ? Enterprise alkalmazás Modulok helye Alkalmazáskliens modul (JAR) Erőforrás-adapter modul (RAR) Web modul (WAR) ? Enterprise alkalmazás (EAR) EJB modul (JAR)

Alkalmazások és modulok telepítése Elkészített modulok és alkalmazások adott formai követelményeknek megfelelően Rendszerint van Alkalmazások és modulok telepítése Elkészített modulok és alkalmazások adott formai követelményeknek megfelelően Rendszerint van ún. hot-deploy könyvtár: ebbe bemásolva az elkészített modulokat, azokat az alkalmazásszerver automatikusan telepítni (beállítható időközönként vizsgálja a változásokat) Rendszerint van lehetőség webes menedzsmentre, általában ezen keresztül is lehet modulokat telepíteni

Alkalmazások és modulok telepítése JBoss Szabvány J 2 EE modulok és alkalmazások telepíthetők JBoss-os Alkalmazások és modulok telepítése JBoss Szabvány J 2 EE modulok és alkalmazások telepíthetők JBoss-os kiegészítő modulok is telepíthetők Megfelelő szerver profilban lévő deploy könyvtár tartalmazza a telepített alkalmazásokat: Becsomagolt (archív) modulok (. ear, . war, . jar fájlok) Ún. exploded modulok (hasonló az előzőhöz, csak nincs egybecsomagolva, könyvtárként jelenik meg) JMX interfészen keresztül is telepíthetők modulok

Alkalmazások és modulok telepítése Web. Sphere Webes vagy konzolos menedzsment eszközök használatával Hot directory-ba Alkalmazások és modulok telepítése Web. Sphere Webes vagy konzolos menedzsment eszközök használatával Hot directory-ba való bemásolással: Java EE csomagolás nélkül is telepíthetők alkalmazások (akár Java forrásfájl is telepíthető így) A hiányzó dolgokat (telepítési leírók, stb. ) az alkalmazásszerver automatikusan legenerálja, Megfelelő fejlesztőeszköz használatával: Pl. Rational Application Developer for Web. Sphere Software, Rational Application Developer Assembly and Deploy Ezek jellemzően az alkalmazásfejlesztés életciklus nagyobb részét támogatják (tervezés, fejlesztés, tesztelés, telepítés, stb. )

Menedzsment Java Management Extesions (JMX) Standard API Erőforrások kezelésére és monitorozására: alkalmazások, eszközök, szolgáltatások, Menedzsment Java Management Extesions (JMX) Standard API Erőforrások kezelésére és monitorozására: alkalmazások, eszközök, szolgáltatások, JVM, stb. Jellemző használat: Alkalmazások konfigurációjának elemzésére és módosítására Alkalmazások viselkedéséről statisztikai adatok gyűjtése, és elérhetővé tétele Állapotváltozások és hibák esetén történő értesítésekre Moduláris architektúra rugalmasan bővíthető Ún. MBean-ek testesítik meg a kezelhető erőforrásokat (szabvány interfésszel rendelkező osztályok)

Menedzsment - JBoss JMX Console: web alapú kliens a JMX interfész használatához Twiddle: parancssori Menedzsment - JBoss JMX Console: web alapú kliens a JMX interfész használatához Twiddle: parancssori eszköz a JMX interfész használatához Lehetőségek: Szolgáltatások, modulok állapota (indítási és leállítási lehetőség) Statisztikák (kérések száma, gyorsítótárak, készletek állapota stb. ) Beállítások, finomhangolás … Fontos: JMX Console alkalmazást éles rendszeren tiltani kell, mert ehhez hozzáférve a JBosst futtató gépen tetszőleges parancs futtatható

Menedzsment - JBoss Web Console: webes felület a JBoss fontosabb részeinek kezeléséhez JMX Console-lal Menedzsment - JBoss Web Console: webes felület a JBoss fontosabb részeinek kezeléséhez JMX Console-lal szemben menedzsment szempontjából logikailag csoportosítja az erőforrásokat Lehetőséget biztosít az egyes értékek grafikonon történő nyomon követésére valamint pillanatképek készítésére

Menedzsment - Web. Sphere A Web. Sphere egyik előnye a kiváló menedzsment lehetőség Központilag Menedzsment - Web. Sphere A Web. Sphere egyik előnye a kiváló menedzsment lehetőség Központilag több különálló szerver kezelhető: Adminisztratív ügynök Munkakezelő (Job manager): menedzsment feladatok (telepítés, elindítás, stb. ) kezelésére Centralizált telepítéskezelő: távoli szerverekre egy központi helyről lehet alkalmazásokat telepíteni Alkalmazások csoportosíthatók, a csoportok egységesen kezelhetők Scriptek készítésének támogatása parancssori eszközökkel programozható menedzsment JMX itt is használható

Clustering Nagy teljesítményigényű vagy kritikus üzleti alkalmazások esetén alkalmazzák Több alkalmazásszerver példány együttműködik a Clustering Nagy teljesítményigényű vagy kritikus üzleti alkalmazások esetén alkalmazzák Több alkalmazásszerver példány együttműködik a feladatok elvégzésére Előnyök: Ha a folyamatok részei párhuzamosíthatók, akkor az egyes részfolyamatok futhatnak párhuzamosan a teljes folyamat gyorsabban végrehajtódik Load balancing: mindig olyan szerver példány kapja a következő feladatot, amelyiknek a legkisebb a terhelése Hibatűrés: Amennyiben egy szerver példány kiesik (hálózati vagy egyéb hiba esetén), a feladatát a többiek át tudják venni J 2 EE szabvány szerint támogatja az alkalmazások clusterekre történő telepítését A clustering tényleges megvalósítása gyártófüggő Rendszerint van valamilyen előtétrendszer, ami a kéréseket szétosztja a rendelkezésre álló példányok között – egyes gyártók támogatják az automatikus elosztást Probléma: munkamenet (session) hogyan kerüljön át az egyik példányról a másikra

JGroups Megbízható multicast kommunikációra felhasználható Java osztálykönyvtár (licensz: LGPL) Egymással kommunikáló csomópontokból csoportokat képez JGroups Megbízható multicast kommunikációra felhasználható Java osztálykönyvtár (licensz: LGPL) Egymással kommunikáló csomópontokból csoportokat képez A csoportok tetszőleges LAN-on vagy WAN-on kialakíthatók Csoportok kialakítása dinamikusan (futásidőben) történik Point-to-point és point-to-multipoint kommunikációt is támogat Jellemzői: Veszteségmentes adatátvitel minden címzettnek (elveszett üzenetek újraküldésével Nagy üzenetek tördelése (küldő oldalon) és visszaállítása (fogadó oldalon) Üzenetsorrend megtartása Atomi műveletvégzés: vagy mindenki megkapja a teljes üzenetet vagy senki Természetéből fakadóan képes clustering támogatására

JGroups Többféle átviteli protokoll támogatása: Többféle felderítési protokoll támogatása: Ping TCPGossip TCPPing Mping Többféle JGroups Többféle átviteli protokoll támogatása: Többféle felderítési protokoll támogatása: Ping TCPGossip TCPPing Mping Többféle hibadetektáló protokoll támogatása: TCP UDP Tunnel FD: szomszédoknak küldött heartbeat üzeneteket használ FD_SOCK: TCP socketek gyűrűje, minden csomópont a szomszédjához kapcsolódik VERIFY_SUSPECT: gyanús csomópontot megpróbálja „pingelni” (központi koordinátort használ) Többféle megbízható kézbesítési protokoll támogatása: Unicast: nyugta alapú (akkor szól, ha minden rendben van) NAKACK: az üzenetek sorozatszámot kapnak, ha a sorozatban hiba keletkezik, újraküldést kér a fogadó (akkor szól, ha hiba van)

Clustering - JBoss Beépített clusterkezelés JBoss terminológia: Partition: egy cluster Node: egy JBoss példány Clustering - JBoss Beépített clusterkezelés JBoss terminológia: Partition: egy cluster Node: egy JBoss példány JGroups felhasználása a megbízható üzenetküldésre a clustereken belül a node-ok között dinamikus felderítés és csatlakozás/kilépés Csatornák használata: JBoss cache által használt csatornák: EJB 3 stateful session bean replication Web session replication EJB 3 entity caching Általános célú clustering szolgáltatás: HAPartition: Listenereket akaszthatunk rá, amiket adott események esetén értesít Más node-okkal való RPC lebonyolítására Sok szolgáltatás magja ide köthető Következmény: Egy két JBoss példányból álló (alapértelmezett beállítások mellett futó) cluster gyakorlatilag négy cluster (mind a négyben kettő node szerepel), mivel a cluster csatornánként értendő

Clustering - JBoss Alapértelmezetten az all nevű szerver profil tartalmaz clustering-támogatást (indítása: -c all Clustering - JBoss Alapértelmezetten az all nevű szerver profil tartalmaz clustering-támogatást (indítása: -c all parancssori argumentumokkal) A deploy könyvtárban a clusterservice. xml fájlban találhatók a clustering beállítások A clustereknek egyedi nevet kell adni, ha közös hálózaton vannak Egy példány több clusternek is tagja lehet, de ez menedzsment szempontból ellenjavallott HTTP session replication: JBoss automatikusan kezeli az all szerver konfigurációban (a load balancingot nem!) ${jboss. partition. name: Default. Partition} ${jboss. bind. address} False web. xml-ben distributable attribútumot be kell állítani 30000 . . .

Clustering - JBoss Alkalmazások telepítése JBoss clusterbe farming szolgáltatás segítségével: egyszerű deploy az all Clustering - JBoss Alkalmazások telepítése JBoss clusterbe farming szolgáltatás segítségével: egyszerű deploy az all szerver konfiguráció farm könyvtárába automatikusan települ az alkalmazás az összes clusterbeli példányra Később becsatlakozó példányok a csatlakozáskor automatikusan telepítik az ilyen alkalmazásokat Csak az archivált modulokat támogatja, az exploded típusúakat nem . . . Default. Partition 5000 farm/ Properties p = new Properties(); p. put(Context. INITIAL_CONTEXT_FACTORY, "org. jnp. interfaces. Naming. Context. Factory"); p. put(Context. URL_PKG_PREFIXES, "jboss. naming: org. jnp. interfaces"); p. put(Context. PROVIDER_URL, "localhost: 1100"); // HA-JNDI port. return new Initial. Context(p);

Clustering - JBoss Állapottovábbítás: HA-JNDI (high availability): <!– HA-JNDI configuration in cluster-service. xml: --> Clustering - JBoss Állapottovábbítás: HA-JNDI (high availability): jboss: service=Default. Partition Teljes clusterre kiterjedő JNDI Mellette minden példányban saját lokális JNDI Az alkalmazásnak tudnia kell a HA-JNDI jelenlétéről: jndi. properties fájlba: java. naming. provier. url=server 1: 1100, server 2: 1100, server 3: 1100 @Stateless @Clustered public class My. Bean implements My. Session. Int { public void test() { // Do something cool } }

Clustering - Web. Sphere esetén: Cluster: olyan alkalmazásszerverek csoportja, amelyek azonos alkalmazásokat futtatnak és Clustering - Web. Sphere esetén: Cluster: olyan alkalmazásszerverek csoportja, amelyek azonos alkalmazásokat futtatnak és kezelhetők úgy, mint egyetlen alkalmazásszerver Cluster member: egy Web. Sphere példány A clusteren végzett telepítés, eltávolítás, frissítés (stb. ) a cluster minden tagján végrehajtódik Egy tag legfeljebb egyetlen clusterhez tartozhat Vertikális (egy rendszeren belüli) és horizontális (több rendszeren keresztüli) és vegyes clustereket is támogat Vertikális cluster Horizontális cluster

Biztonság Authentikáció: folyamat, amely során megállapítjuk, hogy ki szeretne hozzáférni egy adott erőforráshoz Valamilyen Biztonság Authentikáció: folyamat, amely során megállapítjuk, hogy ki szeretne hozzáférni egy adott erőforráshoz Valamilyen egyedi információt kell begyűjteni a hozzáférést kezdeményezőtől: Tudás alapú: pl. felhasználónév és jelszó Kulcs alapú: fizikai vagy titkosítási kulcsok Biometrikus: pl. ujjlenyomat, retina, DNS, stb. Authorizáció: Folyamat, amelynek során ellenőrizzük, hogy egy adott felhasználó megfelelő jogosultságokkal rendelkezik-e a kért erőforráshoz való hozzáféréshez

PKI és társai Kivonat (Hash) Titkos kulcsú titkosítás (Symetric) Nyilvános kulcsú titkosítás (Asymetric) Digitális PKI és társai Kivonat (Hash) Titkos kulcsú titkosítás (Symetric) Nyilvános kulcsú titkosítás (Asymetric) Digitális aláírás (Digital Siganture) Digitlis tanúsítvány (Digital Certificate) Tanúsítvány hatóság (Certificate Authority) 26

Kivonat Tetszőleges bemenet Pl. : 128 bites kimenet A bemeneten egy kis változtatás is Kivonat Tetszőleges bemenet Pl. : 128 bites kimenet A bemeneten egy kis változtatás is megváltoztatja a kimenete is Nem visszafejthető 27

Szimmetrikus kulcsú titkosítás Közös kulcs Gyors Kulcselosztás? 28 Szimmetrikus kulcsú titkosítás Közös kulcs Gyors Kulcselosztás? 28

Aszimmetrikus kulcsú titkosítás Nyilvános kulcs Titkos kulcs Lassú 29 Aszimmetrikus kulcsú titkosítás Nyilvános kulcs Titkos kulcs Lassú 29

Digitális aláírás 30 Digitális aláírás 30

Digitális tanúsítvány 31 Digitális tanúsítvány 31

Tanúsítvány hatóság 32 Tanúsítvány hatóság 32

Biztonsági megoldások 33 Biztonsági megoldások 33

 TLS (Tranport Layer Security) Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS TLS (Tranport Layer Security) Új réteg bevezetése: Netscape SSL Microsoft PCT IETF TLS Megbízhatóság, Adatvédelem, Azonosítás Definiálja a csatorna paramétreinek egyeztetési módszerét Viszony/Kapcsolat 34

TLS felosztása I. TLS Handshake 35 Session identifier Peer certificate Compression method Cipher spec TLS felosztása I. TLS Handshake 35 Session identifier Peer certificate Compression method Cipher spec Master secret Is resumable

TLS felosztása II. TLS Record 36 Fragmentálás Tömörítés Tartalom védelem Titkosítás TLS felosztása II. TLS Record 36 Fragmentálás Tömörítés Tartalom védelem Titkosítás

Kapcsolat felépítés 1. 2. 3. 4. 5. 37 Hello üzenetcsere Rejtjelezési paraméter csere Bizonyítvány Kapcsolat felépítés 1. 2. 3. 4. 5. 37 Hello üzenetcsere Rejtjelezési paraméter csere Bizonyítvány csere Főkulcs Adatcsere

SSO, E-SSO Single sign-on (SSO) Hozzáférés vezérlés A felhasználó egyszer lép be Az erőforrások SSO, E-SSO Single sign-on (SSO) Hozzáférés vezérlés A felhasználó egyszer lép be Az erőforrások hozzáférése ezután már transzparens számára Problémák: Sok webhely, sok jelszó (21 account/password) A jelszó kezelés bonyolult Ezért egy jelszavat használ mindenhova Jelszó menedzselők Előnyei: 38 Mac-X, GNOME, KDE, Web Böngészők Idő megtakarítás IT költség csökentés Több szintű transzparens biztonság

Megoldások SSO Megosztott azonosítás, Föderatív azonosság Kerberos alapú Okos kártya alapú OTP token (one Megoldások SSO Megosztott azonosítás, Föderatív azonosság Kerberos alapú Okos kártya alapú OTP token (one time password) Open. SSO Open. ID Shibboleth Információ kártyák Liberty Allience WS-Federation Szabványok 39 SAML

SAML Security Assertion Markup Language Azonosítás, Jogosultság kezelés biztonsági tartományok között Probléma: Részei Intranet SAML Security Assertion Markup Language Azonosítás, Jogosultság kezelés biztonsági tartományok között Probléma: Részei Intranet megoldások Web Böngésző SSO? XML séma XML aláírás XML titkosítás Elemei: 40 XML alapú állítások Protokollok Kötések Profilok

SAML Kifejezések Azonosítás Attribútum Engedélyezés döntés eredmény (XAML inkább) Pl. : X adta ki SAML Kifejezések Azonosítás Attribútum Engedélyezés döntés eredmény (XAML inkább) Pl. : X adta ki t időben S-re vonatkozóan amenniyben a C feltételek igazak Protokol Hogyan van a dróton átküldve Legfontosabb: Query Kötés 41 Authentication query Attribute query Authorization query

SAML 42 SAML 42

OTP token Cél: nehezebb legy a védett erőforráshoz jogosulatlanul hozzáférni Folyamatosan változó jelszó Típusai OTP token Cél: nehezebb legy a védett erőforráshoz jogosulatlanul hozzáférni Folyamatosan változó jelszó Típusai 43 Matematikai algoritmus mely az előző alapján gyártja a következőt (Leslie Lamport: hash lánc) Idő szinkronizálás alapú (speciális hw, mobil, …) Matematikai alapú de az újak az azonosító szerver véletlenszáma alapján generálódnak (SMS)

Open. ID Módszer arra, hogy egy azonosító egy felhasználó kezelésében van Elosztott A felhasználó Open. ID Módszer arra, hogy egy azonosító egy felhasználó kezelésében van Elosztott A felhasználó tetszőleges Open. ID szolgáltatót választhat Szolgáltató váltásnál is megtarthatja az azonosítóját Ajax segítségével az oldal elhagyása nélkül is azonosítható a felhasználó Profil, … nem része a specifikációnak 44

Open. ID A protokol A felhasználó megdja az azonsítóját az erőforráshoz Az erőforrás felderíti Open. ID A protokol A felhasználó megdja az azonsítóját az erőforráshoz Az erőforrás felderíti az azonosító szervert és annak protokollját Az erőforrás átirányítja a felhasználót az azonosító szerverhez Az azonosító szerver azonosítja a felhasználót (az hogyan az nincs megadva) Az azonosító szerver visszairányítja a felhasználót az erőforráshoz az azonosítás eredményével 45 URL, Nonce, aláírás

Shibboleth SAML alapú Föderatív kapcsolatok felett azonosítás, jogosultság kezelés 46 Shibboleth SAML alapú Föderatív kapcsolatok felett azonosítás, jogosultság kezelés 46

Kerberos l l MIT Athena project (http: //web. mit. edu/kerberos/www/) Funkciói (Fejek): l l Kerberos l l MIT Athena project (http: //web. mit. edu/kerberos/www/) Funkciói (Fejek): l l Felépítés: l l Azonosítás (authentication) Hozzáférés vezérlés (access control) Naplózás (auditing) Kliens (Client) Szerver (Server) Jegy központ (KDC) Kerberos V 5 (RFC 1510): l Azonosítás 47

Kerberos Működési Elv 1. 2. 3. 4. 5. 48 A Kerberos azonosítás a szimmetrikus Kerberos Működési Elv 1. 2. 3. 4. 5. 48 A Kerberos azonosítás a szimmetrikus titkosításon alapul Kulcs elosztás Kerberosz jegy A jegy kiosztása Az egyed fő kulcs használatának korlátozása

A Kerberos azonosítás a szimmetrikus titkosításon alapul DK(EK(M)) = M; Hasonló megoldás van NTLM A Kerberos azonosítás a szimmetrikus titkosításon alapul DK(EK(M)) = M; Hasonló megoldás van NTLM esetén is: Titkosított Csomag: Viszony Kulcs (session key) Kritikus elem: Azonosító (authenticator) mindig mást kell titkositania Közös titkos kulcs: Ha a közös kulccsal van titkosítva akkor a másik fél hiteles Időbélyeg (Time Stamp) kisebb a kulönbség mint 5 perc, sorrend figyelés Kölcsönös azonosítás: A szerver is megteszi ugyanezt 49

Kulcs elosztás l l Hogyan osztjuk ki a kulcsokat (nem csak ) emberek, … Kulcs elosztás l l Hogyan osztjuk ki a kulcsokat (nem csak ) emberek, … Kerberos nélkül: l n (n — 1)/2 kulcs (50, 000 -> 1, 500, 000) l Minden kliensen Kerberos : Három entitás: l Két kommunikáló fél l Közvetitő fél (Key Distribution Center - KDC) l Minden egyed rendelkezik egy-egy KDC-vel közös kulccsal l Az Egyed Mester Kulcsa (Master Key) (pl: a felh. Jelszavából, MD 5 tárolás, létrehozáskor), hosszútávú kulcs l Kerberos tartományok Windows 2000: l Dcpromo -> kdc szolgáltatás (minden DC írható/olvasható KDC adatbázis) l Azonosító szolgáltatás l Jegy Kiadó Szolgáltatás l Multimaster 50

Kerberos jegy Biztonságos csatorna építhető ki a segítségével Kereberos: Azonosító Szolgáltatás (Authentication Service) Jegykiosztó Kerberos jegy Biztonságos csatorna építhető ki a segítségével Kereberos: Azonosító Szolgáltatás (Authentication Service) Jegykiosztó Szolgáltatás (Ticket-Granting Service) Mindenki megbízik a KDC által legyártott viszonykulcsokban (nem csak a Master Key-ben) A viszonykulcs minősége a Windows 2000 véletlen szám generátorától függ (Nem a felh. Jelszótól !!!) A KDC-nek kellene a viszony kulcsokat kiosztani : A közös kulccsal titkosítja (user, szerver) (Kerberos terminológia : jegy ticket)) 51

Kulcs hierarchia A biztonság növelése érdekében, a gyakran használt kulcsokat gyakrabban változtatják és erősebb Kulcs hierarchia A biztonság növelése érdekében, a gyakran használt kulcsokat gyakrabban változtatják és erősebb kulcsokat generálnak (felh. jelszó): 52 A magasabb szintű kulcsok védik az alacsonyabb szintű kulcsokat A magasabb szintű kulcsok hosszabb élettartamúak

Kulcs elosztás Két megoldás lehetséges: Mindkét fél a szervertől kapja meg: Az erőforrás szervernek Kulcs elosztás Két megoldás lehetséges: Mindkét fél a szervertől kapja meg: Az erőforrás szervernek minden kulcsot tárolnia kellene Szinkronizációs problémák A szerver a kezdeményező félnek küldi el mindkét jegyet 53 Egyszerű azonosítás (elküldi a jegyet) Gyors azonosítás (tárolhatja a jegyet) Egyszerűbb terhelés elosztás (csak másik jegyet kell küldeni) A kulcsok egy speciális memória területen tárlódnak és soha sem kerülnek ki a merevlemezre (klist. exe, kerbtray. exe ürítés )

Jegy biztosító jegyek (ticket-granting ticket ) Minden egyes viszony kulcs létrehozására a felhasználó mester Jegy biztosító jegyek (ticket-granting ticket ) Minden egyes viszony kulcs létrehozására a felhasználó mester kulcsát használtuk Könnyebben visszafejthető szótáras támadással (L 0 phtcrack ) Az első azonosítás után egy TGT-t, és egy viszony kulcsot kap a felhasználó e jegy segítségével titkosítja az üzeneteket a KDC számára A TGT újrahasznosítható az élettértartamán belül A KDC nem tartja nyilván a TGT-ket Gyorsabb megoldás mivel nem kell keresgélnie az adatbázisában 54

Kerberos működése 1. 2. 3. 4. 5. 6. KRB_AS_REQ KRB_AS_REP KRB_TGS_REQ KRB_TGS_REP KRB_AP_REQ KRB_AP_REP Kerberos működése 1. 2. 3. 4. 5. 6. KRB_AS_REQ KRB_AS_REP KRB_TGS_REQ KRB_TGS_REP KRB_AP_REQ KRB_AP_REP 55

Bejelentkezés egy Windows 2000 szerverbe Helyi bejelentkezés (Egy tartományos modell): 1. <CTRL><ALT><DEL> 2. DNS Bejelentkezés egy Windows 2000 szerverbe Helyi bejelentkezés (Egy tartományos modell): 1. 2. DNS keresés (_kerberos , _kpasswd ) 3. KRB_AS_REQ 4. Az Azonosító Szolgáltatás azonosítja a felhasználót majd KRB_AS_REP üzenetet küld. 5. A helyi gép egy KRB_TGS_REQ üzenetet küld. 6. A kdc KRB_TGS_REP választ küld 7. A jegyet megvizsgálja az LSA 56

Jegy tulajdonságok FORWARDABLE FORWARDED PROXIABLE Kliens szerzi be a jegyet Tudni kell a háttérszerver Jegy tulajdonságok FORWARDABLE FORWARDED PROXIABLE Kliens szerzi be a jegyet Tudni kell a háttérszerver adatait PROXY RENEWABLE A szerver szerzi be a jegyet A viszony kulcsok cserélhetőek a jegy újragenerálása nélkül Aktuális kulcs időtartam (tipikusan egy nap) Teljes kulcs időtartam (néhány hét) INITIAL 57

Hálózati bejelentkezés 1. 2. 3. 4. 58 KRB_TGS_REQ KRB_TGS_REP KRB_AP_REQ KRB_AP_REP Hálózati bejelentkezés 1. 2. 3. 4. 58 KRB_TGS_REQ KRB_TGS_REP KRB_AP_REQ KRB_AP_REP

Bejelentkezés más tartományba 1. 2. A felhasználó vagy az erőforrás más tartományhoz tartozik (Alice Bejelentkezés más tartományba 1. 2. A felhasználó vagy az erőforrás más tartományhoz tartozik (Alice Europe, Gép NA). KRB_AS_REQ és KRB_AS_REP (Europe) KRB_TGS_REQ , KRB_TGS_REP 1. 2. 3. 4. 5. 6. KRB_TGS_REQ Europe Hivatkozó jegy NA irányába (compaq. com, tartományközi jelszó) DNS kdc keresés compaq. comban Hivatkozó jegy NA-ra KDC keresés NA-ban TGS_REP az erőforrásra Ez nem történik meg minden alkalommal (tárolás), a csomagok kicsik 59

Tartományok közötti kapcsolat Tartományi megbízott fiókok A tartomány közti azonosítást a speciális megbízó (principal) Tartományok közötti kapcsolat Tartományi megbízott fiókok A tartomány közti azonosítást a speciális megbízó (principal) fiókot tárol a másik tartományról Tartomány közti kulcsok (inter-realm key) A kulcs a jelszóból származik mely megfelelő időközönként cserélődik Valós megbízotti kapcsolat: krbtgt fiók: Közös titkos kulcs (dcpromo) Az ő jelszava lesz a Master Key A jelszó menetrend szerint váltakozik Jelentős DC használat (principal, tartomány) 60

Azonosítás delegálása 61 Azonosítás delegálása 61

Smart card belépés PKINIT CA használat Menet: 62 PA-PK-AS-REQ … Smart card belépés PKINIT CA használat Menet: 62 PA-PK-AS-REQ …

JAAS Java Authentication and Authorization Service (JAAS) API Felhasználó azonosítás (eddig csak kód alapú JAAS Java Authentication and Authorization Service (JAAS) API Felhasználó azonosítás (eddig csak kód alapú azonosítás volt) Mit tud Mivel rendelkezik Kicsoda Az azonosítás választható (alakítható) Plugable Authentication Modules (PAM) Engedélyezés: Deklaratív Progamból 63

PAM SUN Solaris (Linux, …) Szabványos azonosító környezet Az aktuálisan használt eljárás használat, telepítés PAM SUN Solaris (Linux, …) Szabványos azonosító környezet Az aktuálisan használt eljárás használat, telepítés közben derül ki (administrator) Login modulok Válszthatóak Könnyen bővíthetőek Login konfigurációs fájl 64

Java 1. 4 login modulok com. sun. security. auth. module. NTLogin. Module com. sun. Java 1. 4 login modulok com. sun. security. auth. module. NTLogin. Module com. sun. security. auth. module. NTSystem com. sun. security. auth. module. Jndi. Login. Module com. sun. security. auth. module. Key. Store. Login. Module com. sun. security. auth. module. Krb 5 Login. Module com. sun. security. auth. module. Solaris. System com. sun. security. auth. module. Unix. Login. Module com. sun. security. auth. module. Unix. System 65

JAAS elemei Login Context Login. config Login Module Subject Elemei: Metódusai: Principal (Principal. Impl) JAAS elemei Login Context Login. config Login Module Subject Elemei: Metódusai: Principal (Principal. Impl) Credential subject. get. Principals() subject. get. Public. Credentials() subject. get. Private. Credentials() Access Controller Permission objektum Jaas. policy 66

JAAS példa // Example Java 2 Security Policy Entry grant Codebase JAAS példa // Example Java 2 Security Policy Entry grant Codebase "www. sun. com", Signedby "duke" { File. Permission "/cdrom/-", "read"; } // Example JAAS Security Policy Entry grant Codebase "www. sun. com", Signedby "duke", Principal com. sun. Principal "charlie" { File. Permission "/cdrom/charlie/-", "read"; } // Example login module configuration entry Login 2 { sample. Sample. Login. Module required; com. sun. security. auth. module. NTLogin. Module sufficient; com. foo. Smart. Card requisite debug=true; com. foo. Kerberos optional debug=true; }; import java. security. *; import javax. security. auth. *; //exts // Instantiate a login context Login. Context ctx = new Login. Context ("name", Callback. Handler); // Authenicate the subject ctx. login(); // Retrieve authenticated subject Subject sub = ctx. get. Subject(); // Enforce Access Controls Subject. do. As(sub, action); 67

Példa 68 Példa 68

Principal. Impl import java. io. Serializable; import java. security. Principal; public class Principal. Impl Principal. Impl import java. io. Serializable; import java. security. Principal; public class Principal. Impl implements Principal, Serializable { private String name; public Principal. Impl(String n) {name = n; } public boolean equals(Object obj) { if (!(obj instanceof Principal. Impl)) {return false; } Principal. Impl pobj = (Principal. Impl)obj; if (name. equals(pobj. get. Name())) {return true; }return false; } public String get. Name() {return name; } public int hash. Code() {return name. hash. Code(); } public String to. String() {return get. Name(); } } 69

Login konfiguráció A használt azonosítási eljárást nem a program írásakor döntjük el Login. config Login konfiguráció A használt azonosítási eljárást nem a program írásakor döntjük el Login. config Djava. security. auth. login. config==login. config == a rendszer fájlt lecseréli Login. Context required optional requisite sufficient JAASExample { Always. Login. Module required; Password. Login. Module optional; }; 70

Login Context Java osztály Login végrehajtás Subject visszaadás Konstruktora: Login. Context( Login Context Java osztály Login végrehajtás Subject visszaadás Konstruktora: Login. Context("JAASExample", new. Username. Password. Callback. Handler()) Fontosabb metódusai: login() get. Subject() logout() 71

Callback handler Feladata a megfelelő információ beszerzése javax. security. auth. callback. Callback. Handler Elemei: Callback handler Feladata a megfelelő információ beszerzése javax. security. auth. callback. Callback. Handler Elemei: Name. Callback Password. Callback Text. Input. Callback Text. Output. Callback Language. Callback Choice. Callback Confirmation. Callback 72

import java. io. *; import java. security. *; import javax. security. auth. callback. *; import java. io. *; import java. security. *; import javax. security. auth. callback. *; Username. Password. Callback. Handler implements Callback. Handler { public void handle(Callback[] callbacks) throws Unsupported. Callback. Exception, IOException { for(int i=0; i

Login Modul Login. Module interfész Két fázisú elfogadás (two phase commit) Metódusai: initialize( subject, Login Modul Login. Module interfész Két fázisú elfogadás (two phase commit) Metódusai: initialize( subject, callback. Handler, shared. State, options) login() commit() abort() logout() 74

public class Always. Login. Module implements Login. Module { private Subject subject; private Principal public class Always. Login. Module implements Login. Module { private Subject subject; private Principal principal; private Callback. Handler callback. Handler; private String username; private boolean login. Success; public void initialize(Subject sub, Callback. Handler cbh, Map shared. State, Map options) {subject = sub; callback. Handler = cbh; login. Success = false; } public boolean login() throws Login. Exception { if (callback. Handler == null) {throw new Login. Exception( "No Callback. Handler defined"); } Callback[] callbacks = new Callback[1]; callbacks[0] = new Name. Callback("Username"); try {System. out. println( "n. Always. Login. Module Login" ); callback. Handler. handle(callbacks); username = ((Name. Callback)callbacks[0]). get. Name(); } catch (IOException ioe) { throw new Login. Exception(ioe. to. String()); } catch (Unsupported. Callback. Exception uce) { throw new Login. Exception(uce. to. String()); } login. Success = true; return true; } public boolean commit() throws Login. Exception { if (login. Success == false) { System. out. println( "Commit: Always. Login. Module FAIL" ); return false; } if (!(subject. get. Principals(). contains(principal))) { subject. get. Principals(). add(principal); } 75 System. out. println( "Commit: Always. Login. Module SUCCESS" );

if (callback. Handler == null) {throw new Login. Exception( if (callback. Handler == null) {throw new Login. Exception("No Callback. Handler defined"); } Callback[] callbacks = new Callback[2]; callbacks[0] = new Name. Callback("Username"); callbacks[1] = new Password. Callback("Password", false); try { callback. Handler. handle(callbacks); username = ((Name. Callback)callbacks[0]). get. Name(); char[] temp = ((Password. Callback)callbacks[1]). get. Password(); password = new char[temp. length]; System. arraycopy(temp, 0, password, 0, temp. length); ((Password. Callback)callbacks[1]). clear. Password(); } catch (IOException ioe) {throw new Login. Exception(ioe. to. String()); } catch (Unsupported. Callback. Exception uce) {throw new Login. Exception(uce. to. String()); } if ( "joeuser". equals(username)) { if ( password. length == 5 && password[0] == 'j' && password[1] == 'o' && password[2] == 'e' && password[3] == 'p' && password[4] == 'w' ) { login. Success = true; clear. Password(); return true; }} else {login. Success = false; username = null; 76 clear. Password();

Hozzáférési környezet Szálanként kezeljük a jogosultságot A Subject kötése a környezethez: Object do. As(Subject Hozzáférési környezet Szálanként kezeljük a jogosultságot A Subject kötése a környezethez: Object do. As(Subject subject, Privileged. Action action) Object do. As. Privileged(Subject, Privileged. Action action, Access. Control. Context acc) Deklaratív megoldás: Object do. As. Privileged(Subject, Privileged. Action action, null) 77

Program modell/ Deklaratív modell class Payroll. Action implements Privileged. Action { Access. Control. Context Program modell/ Deklaratív modell class Payroll. Action implements Privileged. Action { Access. Control. Context context = Access. Controller. get. Context(); Subject subject = Subject. get. Subject(context ); if (subject == null ) {throw new Access. Control. Exception("Denied"); } Set principals = subject. get. Principals(); Iterator iterator = principals. iterator(); while (iterator. has. Next()) { Principal. Impl principal = (Principal. Impl)iterator. next(); if (principal. get. Name(). equals( "joeuser" )) {System. out. println("joeuser has Payroll accessn"); return new Integer(0); }}throw new Access. Control. Exception("Denied"); } class Personnel. Action implements Privileged. Action { public Object run() { Access. Controller. check. Permission(new Personnel. Permission("access")); System. out. println( "Subject has Personnel accessn"); 78 return new Integer(0); }}

public class JAASExample { static Login. Context lc = null; public static void main( public class JAASExample { static Login. Context lc = null; public static void main( String[] args) { try { lc = new Login. Context("JAASExample", new Username. Password. Callback. Handler()); } catch (Login. Exception le) {System. out. println( "Login Context Creation Error" ); System. exit(1); } try {lc. login(); } catch (Login. Exception le) { System. exit(1); } try { Subject. do. As( lc. get. Subject(), new Payroll. Action() ); } catch (Access. Control. Exception e) {System. out. println( "Payroll Access DENIED" ); } try { Subject. do. As. Privileged( lc. get. Subject(), new Personnel. Action(), null ); } catch (Access. Control. Exception e) { System. out. println( "Personnel Access DENIED" ); } try { lc. logout(); } catch (Login. Exception le) { java System. out. println( "Logout FAILED" ); -Djava. security. manager -Djava. security. auth. login. config==login. config System. exit(1); -Djava. security. policy==jaas. policy JAASExample } 79 System. exit(0);

Biztonság - Web. Sphere Kerberos, Single Sign-On, biztonsági tanúsítványok támogatása Több biztonsági tartomány kezelése, Biztonság - Web. Sphere Kerberos, Single Sign-On, biztonsági tanúsítványok támogatása Több biztonsági tartomány kezelése, minden biztonsági tartomány a saját felhasználóival reldelkezik Alkalmazási és adminisztrációs tartományok elkülöníthetők Adminisztratív tevékenységek naplózása

Biztonság - Web. Sphere Authentikáció: Felhasználói adatbázis alapján történik: Sikeres authentikáció esetén egy igazolás Biztonság - Web. Sphere Authentikáció: Felhasználói adatbázis alapján történik: Sikeres authentikáció esetén egy igazolás (credential) kerül kiállításra a továbbiakban ez használatos a hitelesített felhasználó ábrázolására Átviteli protokollok: Operációs rendszer felhasználói alapján LDAP alapján Egyéb (tetszőleges adatbázisból, de implementálni kell) EJB-erőforrások esetén: CSIv 2 Webes erőforrások esetén: HTTP vagy HTTPS Web. Sphere-ben használható authentikációs módszerek: Lightweight Third Party Authentication (LTPA) Kerberos RSA token Single Sign-on: Egyszer kell authentikálni, utána minden alkalmazás annak az eredményét használja Feltételek: Minden az SSO-ban részt vevő szerver ugyanazt a felhasználói adatbázist használja Minden az SSO-ban részt vevő szerver ugyanabban a DNS név alatt érhető el (cookie-k miatt) Minden URL-ben domain neveket kell használni (szintén cookie-k miatt) Webes alkalmazások esetén a webböngészőnek támogatnia kell a cookie -kat

Biztonság - Web. Sphere Authorizáció: Webes és Java EE authorizáció Webszolgáltatás authorizáció JMS és Biztonság - Web. Sphere Authorizáció: Webes és Java EE authorizáció Webszolgáltatás authorizáció JMS és JACC authorizáció Ha JACC szolgáltató meg van adva, akkor a Web. Sphere azt használja (a Java EE alkalmazás authorizációs döntései delegálva lesznek a szolgáltatóhoz) Java biztonsági annotációk támogatása Adminisztatív tevékenységek: Alapértelmezett szerepkörök: Monitor, Configurator, Operator, Administrator, ISC Admins, Deployer, Admin Security Manager, Auditor JACC (Java Authorization Contract for Containers) architektúra

Biztonság - Web. Sphere Biztonságos kommunikáció: SSL használata: Titoktartás (privacy), integritás megőrzése és authentikáció Biztonság - Web. Sphere Biztonságos kommunikáció: SSL használata: Titoktartás (privacy), integritás megőrzése és authentikáció céljából Public Key Infrastructure (PKI) használata: Tanúsítvány (certificate) alapú Tanúsítványok visszavonásának lehetősége Java Secure Sockets Extension (JSSE), mint implementáció

Biztonság - Web. Sphere Biztonságos kommunikáció: SSL használata: Titoktartás (privacy), integritás megőrzése és authentikáció Biztonság - Web. Sphere Biztonságos kommunikáció: SSL használata: Titoktartás (privacy), integritás megőrzése és authentikáció céljából Tanúsítvány alapú Public Key Infrastructure (PKI) Java Secure Sockets Extension (JSSE), mint implementáció Alkalmazások biztonsága: Biztonsági szerepkörök használata (fejlesztésnél a pontos felhasználók még nem ismeretesek, de a rendszerben betöltött szerepek igen) Telepítéskor rendelhetünk az egyes felhasználókhoz biztonsági szerepköröket Deklaratív (a szabályok programkódon kívül vagy annotációval vannak megadva) és programozott (a szabályok programkóddal vannak megadva) biztonság

Biztonság - JBoss Java EE alkalmazások biztonsága: Deklaratív (XML alapú és annotált) és programozott Biztonság - JBoss Java EE alkalmazások biztonsága: Deklaratív (XML alapú és annotált) és programozott biztonság JAAS API használata: Biztonsági tartományok támogatása Beépített authentikációs lehetőségek: Standard a Java biztonság terén Authentikáció és authorizáció céljából használható Jelszó alapú LDAP alapú Adazbázis (JDBC) alapú Tanúsítvány alapú Saját kiegészítések is készíthetők SSL támogatása: JSSE felhasználásával A szerver biztonsága érdekében egyes alapértelmezett szolgáltatásokat biztonságossá kell tenni: JMX konzol: eltávolítható, vagy authentikációval látható el (jmxconsole. war) Web konzol: authentikációval látható el (management könyvtár) HTTP invokerek: JMXInvoker. Servlet biztonságossá tételével (httpinvoker. sar) JMX invoker: RMI/HTTP-re történő váltással (jmx-invoker-adaptorserver. sar)

JCA Lehetővé teszi a JEE komponensek és az EIS (vállalti információs rendszerek) együttműködését Plug-in JCA Lehetővé teszi a JEE komponensek és az EIS (vállalti információs rendszerek) együttműködését Plug-in architektúra: JEE szerverek között hordozható plug-inek Erőforrás-adapter (RAR) modulok valósítják meg ezeket Elosztott tranzakciókezelés: X/Open XA szabvány Authentikáció támogatása: felhasználónév/jelszó, Kerberos JSR-112 specifikálja

Erőforrás adapterek Erőforrás-adapter modulok felelősek egy adott típusú EIS illesztéséért Az erőforrás-adapter készítőinek alaposan Erőforrás adapterek Erőforrás-adapter modulok felelősek egy adott típusú EIS illesztéséért Az erőforrás-adapter készítőinek alaposan ismerniük kell az illesztett EIS működését, a vele történő kommunikáció módját Különböző ún. egyezmények vannak a különböző területekre: Definiálják az alkalmazásszerver és az erőforrás-adapterek kapcsolatait API: java osztályok és interfészek Követelmények: mit kell teljesíteni az erőforrás-adapternek és mit az alkalmazásszervernek

Egyezmények Kapcsolatkezelés (connection management): Tranzakciókezelés (transaction management): Erőforrás-adapterek által végzett hosszabb ideig tartó munkák Egyezmények Kapcsolatkezelés (connection management): Tranzakciókezelés (transaction management): Erőforrás-adapterek által végzett hosszabb ideig tartó munkák elvégzésének támogatása Lehetővé teszi, hogy a szálkezelést ne az erőforrás-adaptereknek kelljen végezni, a szálak megfelelő készletezését Tranzakcióbeáramlás-kezelés (transaction inflow management): Erőforrás-adapterek életciklusának kezelésére (indítás, leállítás, stb. ) Munkakezelés (work management): Kapcsolatkezelési egyezmény kiterjesztése biztonságspecifikus részletekkel Single sign-on támogatása Életcikluskezelés (life cycle management): Tranzakciók kiterjesztése több erőforráskezelőn keresztül EIS-ek erőforráskezelői által belsőleg kezelt tranzakciók támogatására is Biztonságkezelés (security management): Alkalmazás komponensek EIS-ekhez való kapcsolódásához, kapcsolatkészletek fenntartásához Lehetővé teszi, hogy az alkalmazásszerver részt vegyen egy külső (importált) tranzakcióban ACID tulajdonságok megtartásával Üzenetbeáramlás-kezelés (message inflow management): Aszinkron üzenetkézbesítésre J 2 EE kompatibilis alkalmazásszerver esetén tetszőleges üzenetkézbesítő szolgáltatást illeszthetünk erőforrásadapterrel (JMS, JAXM, stb. )

Common Client Interface A JCA része Olyan interfészek gyűjteménye, amelyek lehetővé teszik alkalmazáskomponens kliensek Common Client Interface A JCA része Olyan interfészek gyűjteménye, amelyek lehetővé teszik alkalmazáskomponens kliensek számára a különböző rendszerekhez való kapcsolódást Távoli eljáráshívás alapú, a műveletek az EIS-eken futnak, a kliensek az eredményeket kapják vissza Tekinthető úgy, mint a JDBC kiterjesztése olyan EIS-ek felé, amelyek nem relációs adatbázis -kezelők

Common Client Interface Teljesen általánosított interfészek, amelyek lehetővé teszik a lehető legtöbb EIS-típushoz való Common Client Interface Teljesen általánosított interfészek, amelyek lehetővé teszik a lehető legtöbb EIS-típushoz való kapcsolódást: EIS-függő típusok nem szerepelnek Metaadatok kezelésének támogatása Intefészek: Kapcsolat interfészek Kölcsönhatás (interaction) interfészek Metaadat interfészek Szolgáltatás végpont üzenetfigyelő interfész Kivétel (exception) interfészek

Common Client Interface Record: EIS művelethez szükséges adatszerkezet Java-beli megfelelője Interface, aminek megvalósításával saját Common Client Interface Record: EIS művelethez szükséges adatszerkezet Java-beli megfelelője Interface, aminek megvalósításával saját típusok hozhatók létre (rendszerint ezt fejlesztőeszközök tudják automatikusan generálni) Létezhet olyan megvalósítása is, amely általános, a tényleges adattípust csak futási időben alakítja ki Result. Set: EIS által visszaadott táblázatos adatok reprezentálására Hasonló a relációs adatbázisok által visszaadott táblázatos adatokhoz

A mai előadás tartalma Alkalmazásszerverek, alkalmazásszerverek felépítése Java EE alkalmazások és modulok és kezelésük A mai előadás tartalma Alkalmazásszerverek, alkalmazásszerverek felépítése Java EE alkalmazások és modulok és kezelésük Alkalmazásszerverek kezelése (monitoring, menedzsment) Clustering, Jgroups Alkalmazásszerverek biztonsága Java Connector Architecture

A következő előadás tartalma Web Babok Kontextusok Kapcsolat az EJB-vel Pageflow Implementációk 93 Seam A következő előadás tartalma Web Babok Kontextusok Kapcsolat az EJB-vel Pageflow Implementációk 93 Seam Apache. Shale