Hola gente!

Guillermo, el ambito de aplicacion de lo que quiero hacer, es similar al de
Software Transactional Memory, donde tambien se mencionan Transactional
Objects, no a la de las bases de datos. Una comparacion de los dos ambitos,
tomado de un proyecto/ejemplo en  .NET:

http://weblogs.asp.net/ralfw/archive/2007/07/04/software-transactional-memory-ii-isolation-of-changes-to-transactional-objects.aspx

Mis enlaces
http://delicious.com/ajlopez/stm

Nos leemos!

Angel "Java" Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

2010/10/27 Guillermo Schwarz <[email protected]>

> 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]<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 
[email protected]

http://www.clubSmalltalk.org

Responder a