[pyar] Sobre Twisted Matrix

Angel Java Lopez ajlopez2000 en gmail.com
Lun Ago 13 11:12:01 ART 2012


Hola gente!

Interesante tema, Milton... Bien, apenas sabiendo Python, igual me atrevo a
comentar algo por aca.

Yo propondria:
- Sistema A publica eventos (tipo: cambio tal dato en el Estudiante X;
nuevo docente Y con tales datos; etc...)
- Sistema B1 (algo a escribir) se subscribe a algunos de esos eventos (por
ejemplo, tal vez B1 no le interesen los cambios de Asignatura, pero si le
interesen los de Estudiantes y Docentes)
- Sistema C1 (algo a escribir) idem..
- Y asi Sistema D1, E1 y los que vengan

El Sistema B1 (digamos que B es Moodle), al  leer los eventos (en un
servidor dedicado para eso, corriendo siempre, o solo a la noche, etc.),
toma los datos del evento, y los aplica al sistema B (el Moodle,
posiblemente a su base de datos).
Lo mismo el sistem C1, D1, E1 y los que vengan

Que usar para este esquema de publicar/subscribir?
Jeje... no se, miraria Redis, RabbitMQ, etc.
Ver quizas
http://stackoverflow.com/questions/115844/recommended-python-publish-subscribe-dispatch-module

El esquema propuesto tiene pros y contras:
- Contra? Puede ser mas "grande" que otras soluciones directas, como
actualizar Moodle directamente
- Pros? Te permite desacoplar los sistemas. El sistema A solo tiene que
"aprender" a publicar eventos. El resto del sistema A no se toca.
Generalmente, la publicacion de eventos se basa en sistemas que siguen
funcionando aun cuando los B1, C1, D1... no esten en linea. Tambien A
podria publicar eventos en una cola, si es que el "broker" de esos eventos
(el que los recibe y se encarga de dejarlos disponibles a los sistemas
subscriptores), no esta en algun momento accesible desde el sistema A.
Permite incoporar a G1 (un nuevo subsistema subscriptor de eventos) en
cualquier momento, sin tener que cambiar A, o B1, o C1, etc... Permite
cambiar B1 cuando cambien B (por ejemplo, version de Moodle cambia, cambia
la base, solo hay que tocar B1, lo demas sigue andando). Los temas de
seguridad de acceso a las bases de datos de B, C, D... se delegan en B1,
C1, D1... y nunca le pueden "hechar la culpa" al programador de A de
arruinar algo, etc...

Pero todo depende de tu contexto. Puede que lo propuesto sea lo mas
conveniente ahora, o puede que sea lo mas conveniente a futuro, mediano
plazo, o que me digas: no, realmente no podemos implementarlo.

Tuve un caso parecido (que no se llego a implementar): un sistema A daba de
altas, modificaciones en pozos petroleros (un pozo tiene mas de una
perforacion, incluso hay perforaciones que no son verticales ,etc..). Habia
distintos sistemas que debian enterarse de eso: recursos humanos,
seguridad, SCADA con herramientas, etc....  Sin un sistema asi (pub/sub),
uno termina en la "swivel chair solution": un tipo que se sienta, en una
pantalla ve lo que cambio de A, da vuelta su silla rotatoria, y en otra
pantalla carga los datos en el sistema B... ;-)

Nos leemos!

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


2012/8/13 Milton Labanda <1000ton.lab en gmail.com>

> Muchas gracias Emiliano y disculpa la verdad que si me faltó aclarar:
> La sincronización que quiero hacer es: Cuando se produscan  eventos CRUD
> en el sistema Aacademico (A) (principalmente en Estudiantes, Docentes y
> Asignaturas) se produscan las actualizaciones respectivas en los otros
> sistemas (Moodle (B), Encuestas (C) y los que vengan)
>
> El 13 de agosto de 2012 08:41, Emiliano Dalla Verde Marcozzi <
> edvm en fedoraproject.org> escribió:
>
> El día 13 de agosto de 2012 10:34, Milton Labanda
>> <1000ton.lab en gmail.com> escribió:
>> > Hola amigos, me recomendarían usar Twisted en el siguiente escenario, o
>> > alguna otra alternativa:
>> > En una universidad tenemos un Sistema Académico en Python (TurboGears) a
>> > partir del cual queremos sincronizar  otros sistemas tales como: Moodle
>> (PHP
>> > logicamente), Un sistema de encuestas (Django) y otros que vendrán
>> > psiblemente hechos en python o java.
>> >
>> >
>> > /\/\;/-----------------------------------------------------
>> > Milton  Labanda  [miltonlab]
>> > Distro:        Debian GNU/Linux 6.0 Squeeze
>> > Blog:          http://1000tonlab.wordpress.com
>> > jabber:        miltonlab en jabber.org
>> > "... Solamente la libertad que se somete a la Verdad conduce a la
>> persona
>> > humana a su  verdadero bien...".  Karol Wojtyla
>> > (:\ Usa Software Legal, usa Software Libre /:)
>> >
>> >
>>
>> Buen día Milton,
>> Podrías aclarar un poco más como es el tema de sincronizar los datos
>> entre todos
>> esos sistemas ? :-) Te pregunto esto, porque Twisted está muy bueno, me
>> gusta
>> mucho para escribir servidores y clientes no bloqueantes (entre otras
>> muchas cosas),
>> pero no entiendo muy bien como es esto de que queres sincronizar los
>> datos ...
>> Por ejemplo, sean tus sistemas:
>> A, B, C, D
>> Esperas que al agregar un dato en A, pueda ser visto en B? Quizá con
>> 'compartir' las bases
>> de datos entre tus apps sea suficiente ? :-)
>> Saludos,
>>
>> --
>> "Code without tests is broken by design." - Jacob Kaplan-Moss
>> Show me the mone ... code!: https://bitbucket.org/edvm
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> /\/\;/-----------------------------------------------------
> Milton  Labanda  [miltonlab]
> Distro:        Debian GNU/Linux 6.0 Squeeze
> Blog:          http://1000tonlab.wordpress.com
> jabber:        miltonlab en jabber.org <milotnlab en jabber.org>
> "... Solamente la libertad que se somete a la Verdad conduce a la persona
> humana a su  verdadero bien...".  Karol Wojtyla
> (:\ Usa Software Legal, usa Software Libre /:)
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120813/15c33a06/attachment.html>


More information about the pyar mailing list