1 / 38

Perzisztencia-megoldások Java Technológiával

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 istvan. molnar @ geza.simon@ sun.hu. Felülnézet motiváció elvek, fogalmak módszerek

diella
Download Presentation

Perzisztencia-megoldások Java Technológiával

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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ő Útvonalterv

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

  5. :obj :obj :obj :obj Impedance mismatch ?

  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. :obj :obj :obj :obj JDBC

  10. :obj :obj :obj :obj :DAO DAO

  11. :obj :obj :obj :obj :persistenceManager JDO

  12. :obj :obj application server :obj Entity EJB

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

  14. XML adatbázis <A> <B>text1</B> <C> <D>child of C</D> <E>another child of C</E> </C> <F>moreText</F> </A>

  15. XML adatbázis <A> <B>text1</B> <C> <D>child of C</D> <E>another child of C</E> </C> <F>moreText</F> </A>

  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 <cmp-field-mapping name="documentId" persistence-name="documentId" /> • Típusok (DB típus - java osztály) egyeztetése

  25. 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 JDO vagy CMP EJB?

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

  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. á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/ További források

  35. 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 További források

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

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

More Related