Perzisztencia-megoldások Java Technológiával Molnár István, Simon Géza.

Slides:



Advertisements
Hasonló előadás
Zenetár a webszerverünkön, avagy XML használata PHP 5 alatt. Ercsey Balázs (laze) – netpeople.hu.
Advertisements

Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
© Kozsik Tamás Adatbáziskezelés •Relációs adatbáziskezelők •Noha a Java objektum-elvű, egyelőre nem az objektum-elvű adatbáziskezelőket támogatja.
Programozás III STRING-XML.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Vállalati adatok megnyitása a külvilág felé
2008. novemberBodnár Péter, rendszerfejlesztés1 JAVA a kezdetektől napjainkig.
Adatbányászati technikák (VISZM185)
Oracle Java fejlesztési stratégiája
Programrendszerek Fejlesztése
Fejlett programozási technikák II.
Fejlett Programozási Technológiák II. Világos Zsolt 1. gyakorlat.
Fejlett Programozási Technológiák II. Világos Zsolt 7. gyakorlat.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Bevezetés a J2EE világába
Készítette: Sárközi Anikó
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
A Java programozási nyelvSoós Sándor 1/20 Java programozási nyelv 11. rész – Adatbázis-programozás Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Osztott alkalmazások kezelése. VIR elosztott architektúra indítékai: - meglévő komponensek integrációja - WEB / Internet elterjedése (nemzetköziség) -
WEB Technológiák Dr. Pance Miklós – Kolcza Gábor Miskolci Egyetem.
WSDL alapismeretek A WSDL (Web Services Description Language – Web szolgáltatások leíró nyelv) egy XML-alapú nyelv a Web szolgáltatások leírására és azok.
ORACLE ORDBMS adminisztrációs feladatok 2. rész dr. Kovács László 2004.
6. előadás: PHP-MySQL Barabás Péter
SPRING FRAMEWORK bemutatása
Szombathely Dinamikus WEB programozás: PHP és JSP.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
WEB MES (webes gyártásirányító rendszer)
XML támogatás adatbázis-kezelő rendszerekben
OAIS. Megőrzés feladatai Viability –Meg kell őrizni a bitfüzér változatlanságát és olvashatóságát a tároló eszközön Rendbebility –Meg kell őrizni a bitfüzér.
Objektumorientált adatbázisok és szabványok Ispány Márton.
Web Application for Resource Planning
Szoftverarchitektúrák 12. Sorozat portál
ARCHITECTArchitect AcademyFoundationsInsidersMCPtréningekvizsgákgyakorlatprojektek Novák István eEvangelist – „Dive deeper” Grepton Zrt. Technológiai vezető.
Adatkezelés Ez az előadó neve beosztása vállalata.
Adatkezelés ABC: A Create Table-től a megjelenítésig Árvai Zoltán Consultant, Trainer Számalk Oktatóközpont.
Optimalizálás Ez az előadó neve beosztása vállalata.
Az ASP.NET programozási modell Ez az előadó neve beosztása vállalata.
Java 2 Enterprise Edition
Objektum orientált programozás a gyakorlatban
Adatbázis-kezelés JAG,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
APEX BMF, II. félév.
3. előadás.  Apache szerver tudnivalók  Az index.php .htaccess – web-szerverünk beállításai  Konfigurációs állományok  Adatbázis kapcsolódás beállítása.
Web Architecture. Development of Computing Architectures Monolithic mainframe programming Client Server Real Client Server Web Programming.
Android alkalmazások tesztelése
Komoróczy Tamás 1 Java programozási nyelv A nyelv alapjai.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Adatbázis rendszerek I Relációs adatmodell strukturális része Általános Informatikai Tsz. Dr. Kovács László.
Komponens-absztrakció. Objektum-orientált paradigma korlátai Feltételezés az interfészekről: 1. öröklés és aggregáció alkalmazható, 2. közös programozási.
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
Java web programozás 11..
Müller László vezető fejlesztő EQL Soft Informatikai és Tanácsadó Kft.
5. gyakorlat Fleiner Rita.
Webprogramozó tanfolyam
Fejlett Programozási Technológiák II. 2009, Nagy Csaba JSP – Java Server Pages.
Illés Zoltán ELTE Informatikai Kar
Java web programozás 7-8..
Webes MES keretrendszer fejlesztése Kiss Miklós Dániel G-5S8 Tervezésvezető: Dr. Hornyák Olivér.
Java web programozás 5..
.NET FRAMEWORK Röviden Krizsán Zoltán 1.0. Tulajdonságok I Rövidebb fejlesztés 20 támogatott nyelv (nyílt specifikáció) 20 támogatott nyelv (nyílt specifikáció)
Gráfadatbázisok Rácz Gábor.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
Programozás III JPA.
Alkalmazásfejlesztés gyakorlat
Hibernate / EclipseLink / OpenJPA összehasonlítás
Viselkedési minták Behavioral patterns.
Adatbázis használat a webszervernél
JBoss Wildfly Kalla Mór
Előadás másolata:

Perzisztencia-megoldások Java Technológiával Molnár István, Simon Géza

A szerzők Java 0.9 óta (1995) Java/J2EE tervezők oktatók Sun & Oracle sun.hu

Útvonalterv Felülnézet motiváció elvek, fogalmak módszerek (objektum adatbázis, memória adatbázis, xml adatbázis,...) Alulnézet specifikációk, szabványok (jdo, prevalence,...) termékek (Kodo, XML:DB,...) Összefoglalás és a jövő

Perzisztencia? mi az? mire való? elvi fajtái gyakorlati módszerek konkrét termékek

Impedance mismatch :obj ?

Felülnézet Az adatokat meg kell őrizni / át kell menteni –leállás - újraindítás között –elosztott rendszer, cluster elemei között –HA rendszerben eszközcserék között Object-Relational Mapping

Absztrakt perzisztencia Perzisztencia Hosszú távú perzisztencia –ortogonális –transzparens

Technológiai irányok Amit lehet, generáljunk (metaadatokból, leíróból,...) –kódgenerálás –sémagenerálás „Impedanciaillesztés” –Object - relational –Relational - object

JDBC :obj

DAO :DAO

JDO :obj :persistenceManager

Entity EJB application server :obj

A memória az adatbázis Memória - olcsó Memória - gyors Megoldandók... biztonság, stabilitás, garaciák :obj

XML adatbázis text1 child of C another child of C moreText

XML adatbázis text1 child of C another child of C moreText

Program kód vagy lekérdezés Kód –API-hívások –saját protokoll Lekérdező nyelv (és módosító nyelv) –létező (SQL, Xpath,...) –új nyelv (EJBQL, JDOQL, OQL...)

Alulnézet Specifikációk, szabványok, majdnem szabványok Termékek –API-k, library-k, csomagok –fejlesztést segítő eszközök –futtatókörnyezetek

JDO Domain objects - programozó feladata Tárolásuk - persistence manager –tranzakcionálisan Transzparens perzisztencia (de nem ortogonális) –látszólag minden objektum a JVM memóriájában

JDO PersistenceManager pm =... //factory Transaction t =... t.begin(); pm.makePersistent(appObj1); t.commit(); pm.close();

JDO életciklus - állapotok –transient,..., persistent new, persistent dirty,... persistent deleted,... persistent nontransactional,... tranzakciók - callback szinkronizáció –jdoPostLoad(), jdoPreStore(), jdoPreDelete(),...

JDOQL (és nincs jdoDML!)... query.declareImports("import Project"); query.declareVariables("Project proj"); query.declareParameters( "String state, String deptName, int sal"); query.setOrdering( "department.deptid ascending, salary descending"); Collection result = (Collection)query.execute(...

JDO implementációk Kodo Sun Reference Implementation Tri-active JDO (sourceforge.net)...

CMP EJB Osztályok (domain object) elkészítése 1 osztály, 2 interface Bean implementation osztály –Entity EJB: adatbázis műveleteket az AS hívja –CMP Entity EJB: abstract : DB műveleteket az AS írja

CMP EJB Perzisztens mezők kijelölése: deployment descriptor(ok) - XML Lekérdezés: EJBQL SELECT OBJECT(d) FROM Document d WHERE d.regNo = ?1 Mezők összerendelése Típusok (DB típus - java osztály) egyeztetése

JDO vagy CMP EJB? CMP –appserver –deployment descr –metódus szintű tranzakc. –EJBQL (~sql) –remote invocation –kódgenerálás JDO –appserver, web server 1 réteg, 2 réteg,... –metadata –öröklődés, polimorfizmus –tranzakc. szinkronizáció –JDOQL (~java) –bytecode enhancement

Prevalence (memória a DB) –Minden a memóriában –Időnként snapshotok –Serializable Command objektumok –RDBMS nyelven: „~redo log” determinisztikus üzleti objektumok replika rendszer - konzisztens snapshot hibatűrés is

Prevalence (memória a DB)

–tranzakciók pedig nincsenek persze nem is kell: tetszőlegesen bonyolult Commandok –időzítés, timestamp,... külső óra: Commandokat küld –implementáció: pl. Prevayler (sourceforge.net)

XML:DB (xml adatbázis) „Ha nincs XML adat, nem kell XML adatbázis!” Fogalmak: –Document –Document collection –Query Engine Xpath (w3c) –Indexek

XML:DB (xml adatbázis) Adatmódosítás –kiolvasás - módosítás - beszúrás Xupdate –szerverre ruházza ezt a feladatot XML:DB API (implementációtól független!) XMLObjects (szerver funkc. bővítéshez)

XML:DB (xml adatbázis) Példa XPath /db/my-collection/my-child- collection/my-document URL formában (távoli szerver) xindice://myhost.domain.com:4080/db/my- collection/my-child-collection/my- document

ODMG Nyelv-független –C++, Smalltalk, Java,... –Objektum szinten közös perzisztencia –OQL lekérdezőnyelv (SQL92 alapú)

Konklúzió Nincs egyértelmű győztes –és még rengeteg további megoldás létezik (Hibernate, Castor, Torque,...) Választás – jó architect feladata Továbblépés szabványok implementációk

További források általában konferencia: jaoo.dk jdo

További források jdo vs. ejb jsp?thread_id=771 prevalence ibm.com/developerworks/web/library/ wa-objprev/index.html

Kérdések ???????

Köszönjük a figyelmet! stf2003/ istvan.molnar