>realmente desconozco si esto es asi en dolphin por ejemplo, me gustaria
>que me digan como funciona eso...
>nuevamente gracias y espero que este mensaje tenga tanto interes como
>el anterior.
>  
>
Lo que hace OmniBase por  ejemplo es poner anODBReference.
La anODBReference tiene un ODBDemandLoader que tiene la ubicacion del 
objeto original (objectID).
(claro esta que esto es transparente para el desarrollador !!!).
Entonces cada vez que este objeto "este dentro de otro" se pone la 
ODBReference correspondiente.
O sea, que no serializa (guarda) el objeto nuevamente, sino que 
serializa un ODBReference cuando esta es accedida llama automaticamente 
al objeto (este mecanismo es transparente la hora de la persistencia, 
estamos hablando del funcionamiente interno de los "punteros"). El 
objeto se levantar a demanda, si se le envia un mensaje, por lo que la 
eficiencia es bastante buena.
Aunque paresca increible el mecanismo de "levantar a demanda" (demand 
loader) es solo una linea de codigo.
ODBReference
doesNotUnderstand: aMessage
    ^demandLoader perform: aMessage selector withArguments: aMessage 
arguments

La ODBReference cuando no entiende un mensaje supone que es para el 
objeto, entonces deserializa (lee del disco) el objeto y le envia el 
mensaje.

La diferencia esta que nunca hay puntero. Solo creas y relacionas 
objetos, no hay punteros.
Si bien cada objeto tiene un unico ODBObjectID (asi se llama en 
OmniBase) que indica el Container en el cual esta el objeto 
(containerID) y un indice (index) que indica donde esta el objeto.

Esta es una gran diferencia con las RDBMS.
Por ejemplo en GemStone/S (una OODBMS) el numero noventa (90) es una 
sola instancia.
Todos los objetos que tengan 90 apuntan a la misma instancia.
unaCuenta numero "90" .
unLibro costo "90" .
unCurso numeroAnotados "90".
etc.

Hacen referencia al mismo objeto.

Saludos Bruno






--~--~---------~--~----~------------~-------~--~----~
Ha recibido este mensaje porque está suscrito a Grupos de Google 
"clubSmalltalk" grupo.
 Si quiere publicar en este grupo, mande un correo electrónico a 
[email protected]
 Para anular la suscripción a este grupo, envíe un mensaje a [EMAIL PROTECTED]
 Para visualizar más opciones, visite este grupo 
enhttp://groups.google.com/group/clubSmalltalk
-~----------~----~----~----~------~----~------~--~---

Responder a