Hola Angel,

creo que se debe aclarar los términos.

En el mundo de las bases de datos relacionales las transacciones
significan ACID: Atomic, Consistent, Isolated y Durable.

En particular Atomic significa que o se hacen todas las operaciones o no
se hace ninguna. ¿Cómo implementas eso? No sólo los objetos
"transaccionables" deben volver al estado en que estaban, sino que todos
los qu ehayan sido modificados. Si un objeto no es durable, debiera dar
lo mismosi se puede devolver a su estado anterior. Por ejemplo un
socket, si ya envió algo por la red, imposible "desenviarlo". Por eso en
los EJBs no está permitio conectarse a través de sockets ni escibir
archivos.

Luego lo de Consistent, no hay manera de hacerlo en Smalltalk a menos
que modeláramos tablas relacionales en Smalltalk de modo que cada tabla
fuera por ejemplo un Dictionary (PK -> registro completo). Creo que esto
hasta el momento no existe.

Luego lo de Isolated, creo que es lo que implementaste tú, una de las
transacciones falla (y se podría ejecutar de nuevo) si trata de
modificar un objeto que ha sido modificado en una transacción que aún se
encuentra activa.

Finalmente lo de Durable correspondería a que el Dictionary que
representa cada tabla fuera persistente.

No sé si te hace sentido.

Saludos,
Guillermo.

On Tue, 2010-10-26 at 06:17 -0300, Angel Java Lopez wrote:
> Hola gente!
> 
> Interesante el enlace de parallel, gracias Guillermo.
> 
> Comentario rapido: el codigo de tarde de domingo, fue agregar
> transacciones a objetos, en AjTalk. Esta funcionando, pero todavia en
> revision. Me falta implementar la sintaxis con la que lo voy a usar,
> pero sera algo como:
> 
> myObj := MyClass new asTransactionable.
> 
> "tambien podria poner"
> 
> MyClass transactionable: true.
> 
> "y de ahi en mas los objetos creados de MyClass son transactionables".
> 
> Transaction begin.
> 
> "modifican los objetos, habra objetos transaccionables"
> 
> Transaction commit. "o Transaction rollback"
> 
> Si dos Process tratan de modificar la misma variable de instancia de
> myObj, uno dara exception. Me falta controlar las variables indexadas.
> 
> Nos leemos!
> 
> Angel "Java" Lopez
> http://www.ajlopez.com
> http://twitter.com/ajlopez
> 
> 2010/10/26 Guillermo Schwarz <[email protected]>
>         Sí, bueno, yo veo que todo tiende a Java, a pesar de que los
>         lenguajes
>         funcionales (F#) parecen estar mejor implementados en .NET que
>         en la JVM
>         (Scala y Clojure).
>         
>         Y me gustó la idea de implementar EJBs en Smalltalk, por
>         alguna razón
>         imagino que es un buen vehículo conceptual que existan threads
>         con
>         transacciones en vez de threads con locks.
>         
>         Y de esa manera las bases de datos resuelven el tema de las
>         transacciones, el código en Smalltalk simplemente indica en
>         qué momento
>         gatillar el "commit".
>         
>         Entonces estará el problema de cómo hacer las transacciones a
>         la base de
>         datos si según recuerdo no existe una manera estándar como
>         JDBC para
>         acceeder a las BDR desde Smalltalk. Entonces me topé con
>         TOPLink, que al
>         parecer es sólo abierto en el caso de Java y con Glorp, que al
>         parecer
>         es el estándar hoy en día en el mundo Smalltalk:
>         
>         http://www.glorp.org/
>         
>         Entonces una vez implementada la persistencia mediante Glorp,
>         debiera
>         poder delimitar transacciones a través de EJBs y la ejecución
>         a través
>         de [] fork debiera ser trivial...
>         
>         Al menos conceptualmente me parece que la solución anda, no sé
>         tú. ¿Te
>         suena a que anda?
>         
>         ¿Porqué digo esto? Porque me topé con esto:
>         http://wiki.squeak.org/squeak/537
>         
>         Lo que me parece que estuvieran tratando de replicar son los
>         ambientes
>         Lisp distribuidos en los que funciona de manera trivial el
>         paralelismo
>         masivo porque en Lisp casi no hay nada compartido. Lograr eso
>         en
>         Smalltalk creo que es casi imposible, porque el lenguaje está
>         pensado
>         para que modifique el estado de los objetos en memoria. El
>         enfoque que
>         yo tengo es que sea responsabilidad del programador no hacer
>         ninguna
>         llamada a objetos en memoria, lo mismo que pasa con los EJBs
>         en Java.
>         
>         Ahora como estos EJBs están en Smalltalk en realidad debieran
>         llamarse
>         EOB (Enterprise OBjects).
>         
>         Saludos,
>         Guillermo.
>         
>         
>         
>         On Tue, 2010-10-19 at 18:26 -0300, Angel Java Lopez wrote:
>         > Comentario corto: Hace unos anios comence a escribir este
>         tipo de pet
>         > project, en C#, porque no estaba claro que pasaba con un
>         Java VM o JDK
>         > Abierto. Ahora esta el Harmony de Apache, que recuerde. Pero
>         ya casi
>         > desde principios de siglo, tenemos Mono. No probe todo lo
>         que escribo,
>         > pero un pet project bastante importante para mi, que esta
>         siendo usado
>         > diaramente en dos proyectos de desarrollo, corre sin tocar
>         nada, desde
>         > el compilado, en Ubuntu con Mono, y en OS/X de Mac con Mono.
>         >
>         > Y esta todo el codigo fuente de Mono para ese soporte.
>         >
>         > Nos leemos!
>         >
>         > Angel "Java" Lopez
>         > http://www.ajlopez.com
>         > http://twitter.com/ajlopez
>         >
>         > 2010/10/19 Guillermo Schwarz <[email protected]>
>         >
>         >
>         >                         Quizás lo que quiere Valluod es
>         desligarse de
>         >                         una plataforma (C#) de la que no
>         tiene los
>         >                         fuentes ;-)
>         >
>         >                 Lo que?
>         >
>         >
>         >         Me refería al codigo fuente de c#.
>         >
>         >         Si el día de mañana sacan Windows 9 u 8 y sobre el
>         corre
>         >         solo .net 9 u 8, pero tu vm no corre sobre el nuevo
>         runtime,
>         >         perdiste toda la inversión de tiempo que hiciste.
>         >
>         >         Mientras que si desarrollas sobre una plataforma
>         open source,
>         >         no importa lo que cambien por debajo, siempre puedes
>         adaptar
>         >         tu plataforma porque dispones del código fuente.
>         >
>         >
>         >
>         >
>         >
>         >                 Andres.
>         >
>         >
>         >
>         
>         > --
>         
>         > To post to this group, send email to
>         [email protected]
>         > To unsubscribe from this group, send email to clubSmalltalk
>         > [email protected]
>         >
>         > http://www.clubSmalltalk.org
>         
>         --
>         Simplex Veri Sigillum
>         
>         --
>         To post to this group, send email to
>         [email protected]
>         To unsubscribe from this group, send email to clubSmalltalk
>         [email protected]
>         
>         http://www.clubSmalltalk.org
> 
> 
> 
> -- 
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to clubSmalltalk
> [email protected]
>  
> http://www.clubSmalltalk.org

-- 
Simplex Veri Sigillum

-- 
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]

http://www.clubSmalltalk.org

Responder a