Muchas gracias de nuevo, no tomamos mucho en cuenta esos casos en detalle, por ahora nos interesa lo mas general porque nos urge la relacion SGA-Moodle que ya mismo empiezan clases je je.<div><br></div><div>Respecto cosas  de los  mensajes anteriores:</div>
<div>1-  Las BD están en servidores  diferentes</div><div>2-  Las BD son Postgres unas  y MySQL otras<br>3-  En un inicio pensé usar Pg_Q pero por (1) y (2) ya no puedo ni pensar en esa alternativa.</div><div><br><div class="gmail_quote">
El 13 de agosto de 2012 09:26, Angel Java Lopez <span dir="ltr"><<a href="mailto:ajlopez2000@gmail.com" target="_blank">ajlopez2000@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Algo mas.... no se si tomaron en cuenta casos como:<div><br></div><div>1- Sistema Academico A da de alta estudiante, pero Moodle necesita MAS datos que los que da el sistema A, para dar de alta el estudiante.</div><div>2- Sistema Academico A da de alta estudiante, pero por que cargar eso en A, si Moodle ya tiene el estudiante dado de alta</div>

<div>3- En el caso que A de de alta estudiante, y Moodle encuentre que ya existe, pero tiene otros (otro domicilio), que hacer?</div><div><br></div><div>Es decir, temas de "que es alta?" vs "esa alta en A ya estaba en B", y como se resuelven los conflictos.</div>

<div><br></div><div>El caso 2, daria para que el sistema A tal vez tenga que acceder a B (Moodle) para obtener datos de un estudiante YA EXISTENTE en B, pero que no se conoce en A (es la primera vez que el estudiante aparece en el sistema A).</div>

<div><br></div><div>Hace unos meses, en una reunion presencial de agiles buenos aires, se planteo un software architecture kata parecido:</div><div><a href="http://www.architecturalkatas.com/kata.html?kata=ECollege.json" target="_blank">http://www.architecturalkatas.com/kata.html?kata=ECollege.json</a>
</div><div><br></div><div>ver <a href="http://www.architecturalkatas.com/" target="_blank">http://www.architecturalkatas.com/</a></div><div class="HOEnZb"><div class="h5"><div><br></div><div><br><div class="gmail_quote">
2012/8/13 Angel Java Lopez <span dir="ltr"><<a href="mailto:ajlopez2000@gmail.com" target="_blank">ajlopez2000@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola gente!<div><br></div><div>Interesante tema, Milton... Bien, apenas sabiendo Python, igual me atrevo a comentar algo por aca.</div>

<div><br></div><div>Yo propondria:</div><div>- Sistema A publica eventos (tipo: cambio tal dato en el Estudiante X; nuevo docente Y con tales datos; etc...)</div>
<div>- 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)</div><div>- Sistema C1 (algo a escribir) idem..</div>


<div>- Y asi Sistema D1, E1 y los que vengan</div><div><br></div><div>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).</div>


<div>Lo mismo el sistem C1, D1, E1 y los que vengan</div><div><br></div><div>Que usar para este esquema de publicar/subscribir?</div><div>Jeje... no se, miraria Redis, RabbitMQ, etc.</div><div>Ver quizas <a href="http://stackoverflow.com/questions/115844/recommended-python-publish-subscribe-dispatch-module" target="_blank">http://stackoverflow.com/questions/115844/recommended-python-publish-subscribe-dispatch-module</a></div>


<div><br></div><div>El esquema propuesto tiene pros y contras:</div><div>- Contra? Puede ser mas "grande" que otras soluciones directas, como actualizar Moodle directamente</div><div>- 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...</div>


<div><br></div><div>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.</div>


<div><br></div><div>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... ;-)</div>


<div><br></div><div>Nos leemos!<span><font color="#888888"><br><br></font></span></div><span><font color="#888888"><div>Angel "Java" Lopez</div><div><a href="http://www.ajlopez.com" target="_blank">http://www.ajlopez.com</a><br>

<a href="http://twitter.com/ajlopez" target="_blank">http://twitter.com/ajlopez</a></div></font></span><div><div>
<div><br><br><div class="gmail_quote">2012/8/13 Milton Labanda <span dir="ltr"><<a href="mailto:1000ton.lab@gmail.com" target="_blank">1000ton.lab@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Muchas gracias Emiliano y disculpa la verdad que si me faltó aclarar:<div>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)<br>



<br><div class="gmail_quote">El 13 de agosto de 2012 08:41, Emiliano Dalla Verde Marcozzi <span dir="ltr"><<a href="mailto:edvm@fedoraproject.org" target="_blank">edvm@fedoraproject.org</a>></span> escribió:<div><div>


<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
El día 13 de agosto de 2012 10:34, Milton Labanda<br>
<<a href="mailto:1000ton.lab@gmail.com" target="_blank">1000ton.lab@gmail.com</a>> escribió:<br>
<div><div>> Hola amigos, me recomendarían usar Twisted en el siguiente escenario, o<br>
> alguna otra alternativa:<br>
> En una universidad tenemos un Sistema Académico en Python (TurboGears) a<br>
> partir del cual queremos sincronizar  otros sistemas tales como: Moodle (PHP<br>
> logicamente), Un sistema de encuestas (Django) y otros que vendrán<br>
> psiblemente hechos en python o java.<br>
><br>
><br>
> /\/\;/-----------------------------------------------------<br>
> Milton  Labanda  [miltonlab]<br>
> Distro:        Debian GNU/Linux 6.0 Squeeze<br>
> Blog:          <a href="http://1000tonlab.wordpress.com" target="_blank">http://1000tonlab.wordpress.com</a><br>
> jabber:        <a href="mailto:miltonlab@jabber.org" target="_blank">miltonlab@jabber.org</a><br>
> "... Solamente la libertad que se somete a la Verdad conduce a la persona<br>
> humana a su  verdadero bien...".  Karol Wojtyla<br>
> (:\ Usa Software Legal, usa Software Libre /:)<br>
><br>
><br>
<br>
</div></div>Buen día Milton,<br>
Podrías aclarar un poco más como es el tema de sincronizar los datos entre todos<br>
esos sistemas ? :-) Te pregunto esto, porque Twisted está muy bueno, me gusta<br>
mucho para escribir servidores y clientes no bloqueantes (entre otras<br>
muchas cosas),<br>
pero no entiendo muy bien como es esto de que queres sincronizar los datos ...<br>
Por ejemplo, sean tus sistemas:<br>
A, B, C, D<br>
Esperas que al agregar un dato en A, pueda ser visto en B? Quizá con<br>
'compartir' las bases<br>
de datos entre tus apps sea suficiente ? :-)<br>
Saludos,<br>
<span><font color="#888888"><br>
--<br>
"Code without tests is broken by design." - Jacob Kaplan-Moss<br>
Show me the mone ... code!: <a href="https://bitbucket.org/edvm" target="_blank">https://bitbucket.org/edvm</a><br>
_______________________________________________<br>
pyar mailing list <a href="mailto:pyar@python.org.ar" target="_blank">pyar@python.org.ar</a><br>
<a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
<br>
PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
<br>
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br>
</font></span></blockquote></div></div></div><br><br clear="all"><div><br></div>-- <br><div>/\/\;/-----------------------------------------------------<br>Milton  Labanda  [miltonlab]<br>Distro:        Debian GNU/Linux 6.0 Squeeze<br>


Blog:          <a href="http://1000tonlab.wordpress.com" target="_blank">http://1000tonlab.wordpress.com</a><div>
jabber:        <a href="mailto:milotnlab@jabber.org" target="_blank">miltonlab@jabber.org</a><br>"... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su  verdadero bien...".  Karol Wojtyla</div>



<div>(:\ Usa Software Legal, usa Software Libre /:)</div><br>
</div></div>
<br>_______________________________________________<br>
pyar mailing list <a href="mailto:pyar@python.org.ar" target="_blank">pyar@python.org.ar</a><br>
<a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
<br>
PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
<br>
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
pyar mailing list <a href="mailto:pyar@python.org.ar">pyar@python.org.ar</a><br>
<a href="http://listas.python.org.ar/listinfo/pyar" target="_blank">http://listas.python.org.ar/listinfo/pyar</a><br>
<br>
PyAr - Python Argentina - Sitio web: <a href="http://www.python.org.ar/" target="_blank">http://www.python.org.ar/</a><br>
<br>
La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - <a href="http://www.usla.org.ar" target="_blank">http://www.usla.org.ar</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
/\/\;/-----------------------------------------------------<br>Milton  Labanda  [miltonlab]<br>Distro:        Debian GNU/Linux 6.0 Squeeze<br>Blog:          <a href="http://1000tonlab.wordpress.com" target="_blank">http://1000tonlab.wordpress.com</a><div>
jabber:        <a href="mailto:milotnlab@jabber.org" target="_blank">miltonlab@jabber.org</a><br>"... Solamente la libertad que se somete a la Verdad conduce a la persona humana a su  verdadero bien...".  Karol Wojtyla</div>
<div>(:\ Usa Software Legal, usa Software Libre /:)</div><br>
</div>