perzisztencia megold sok java technol gi val n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Perzisztencia-megoldások Java Technológiával PowerPoint Presentation
Download Presentation
Perzisztencia-megoldások Java Technológiával

Loading in 2 Seconds...

play fullscreen
1 / 38

Perzisztencia-megoldások Java Technológiával - PowerPoint PPT Presentation


  • 91 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Perzisztencia-megoldások Java Technológiával' - diella


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
a szerz k
A szerzők
  • Java 0.9 óta (1995)
  • Java/J2EE tervezők
  • oktatók
  • Sun & Oracle

istvan.molnar@

geza.simon@

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ő

Útvonalterv
perzisztencia
Perzisztencia?
  • mi az?
  • mire való?
  • elvi fajtái
  • gyakorlati módszerek
  • konkrét termékek
fel ln zet
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
Absztrakt perzisztencia

Perzisztencia

Hosszú távú perzisztencia

  • ortogonális
  • transzparens
technol giai ir nyok
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
slide9

:obj

:obj

:obj

:obj

JDBC
slide10

:obj

:obj

:obj

:obj

:DAO

DAO
slide11

:obj

:obj

:obj

:obj

:persistenceManager

JDO
entity ejb

:obj

:obj

application server

:obj

Entity EJB
a mem ria az adatb zis

:obj

:obj

:obj

:obj

A memória az adatbázis
  • Memória - olcsó
  • Memória - gyors

Megoldandók...

biztonság, stabilitás, garaciák

xml adatb zis
XML adatbázis

<A>

<B>text1</B>

<C>

<D>child of C</D>

<E>another child of C</E>

</C>

<F>moreText</F>

</A>

xml adatb zis1
XML adatbázis

<A>

<B>text1</B>

<C>

<D>child of C</D>

<E>another child of C</E>

</C>

<F>moreText</F>

</A>

program k d vagy lek rdez s
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
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
slide18
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
slide19
JDO

PersistenceManager pm = ... //factory

Transaction t = ...

t.begin();

pm.makePersistent(appObj1);

t.commit();

pm.close();

slide20
JDO

életciklus - állapotok

  • transient, ..., persistent new, persistent dirty, ... persistent deleted, ... persistent nontransactional, ...

tranzakciók - callback szinkronizáció

  • jdoPostLoad(), jdoPreStore(), jdoPreDelete(), ...
jdoql s nincs jdodml
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
JDO implementációk

Kodo

Sun Reference Implementation

Tri-active JDO (sourceforge.net)

...

cmp ejb
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 ejb1
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
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

JDO vagy CMP EJB?
prevalence mem ria a db
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 db2
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
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 zis1
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 zis2
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

slide32
ODMG
  • Nyelv-független
    • C++, Smalltalk, Java, ...
    • Objektum szinten közös perzisztencia
    • OQL lekérdezőnyelv (SQL92 alapú)
konkl zi
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

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
tov bbi forr sok1
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
k rd sek
Kérdések

?

?

?

?

?

?

?

k sz nj k a figyelmet
www.drotposta.hu/

stf2003/

istvan.molnar

geza.simon

@sun.hu

Köszönjük a figyelmet!