Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Perzisztencia-megoldások Java Technológiával Molnár István, Simon Géza."— Előadás másolata:

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

2 A szerzők Java 0.9 óta (1995) Java/J2EE tervezők oktatók Sun & Oracle istvan.molnar@ geza.simon@ sun.hu

3 Ú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ő

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

5 Impedance mismatch :obj ?

6 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

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

8 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

9 JDBC :obj

10 DAO :DAO

11 JDO :obj :persistenceManager

12 Entity EJB application server :obj

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

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

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

16 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...)

17 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

18 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

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

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

21 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(...

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

23 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

24 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

25 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

26 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

27 Prevalence (memória a DB)

28 –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)

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

30 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)

31 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

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

33 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

34 További források általában http://java.sun.com/ http://www.theserverside.com/ http://w3c.org/ http://db.apache.org/ http://xml.apache.org/ konferencia: jaoo.dk jdo http://access1.sun.com/jdo/

35 További források jdo vs. ejb http://www.onjava.com/lpt/a/3763 http://www.theserverside.com/home/thread. jsp?thread_id=771 prevalence http://www.advogato.org/article/398.html http://www- 106.ibm.com/developerworks/web/library/ wa-objprev/index.html

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

37 Köszönjük a figyelmet! www.drotposta.hu/ stf2003/ istvan.molnar geza.simon @sun.hu

38


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

Hasonló előadás


Google Hirdetések