proyecto combinado escritorio - web.

Oswall Verny Arguedas C. oswallcr en yahoo.com
Jue Dic 10 16:25:38 CET 2009


--- El jue 10-dic-09, Chema Cortes <pych3m4 en gmail.com> escribió:

De: Chema Cortes <pych3m4 en gmail.com>
Asunto: Re: [Python-es] proyecto combinado escritorio - web.
A: "Lista de discusión sobre python en castellano" <python-es en aditel.org>
Fecha: jueves, 10 diciembre, 2009, 5:11 am

El día 10 de diciembre de 2009 04:14, Oswall Verny Arguedas C.
<oswallcr en yahoo.com> escribió:
> Sería primero realizar el modelo de datos con turbogears y luego comunicar con los módulos desktop?

Por lo que das a entender, el acceso a los datos sería a través de la
aplicación web. Hablando con propiedad, quieres una arquitectura
multicapa, donde Modelo estaría implementado con un ORM (sqlalchemy),
la lógica de negocio se haría con  turbogears y la presentación está
enfocada a navegador y escritorio (wx).

--> Si, sería una aplicación multicapa. La haría totalmente en web, sin embargo, tengo problemas con dispositivos de Punto de Ventas, como las impresoras de tickets y otros que son leídos y comandados desde los puertos serial, paralelo y usb, por eso pienso es mejor hacer también clientes en escritorio (wx).

--> Sobre el ORM pienso sería el SqlAlchemy porque por defecto lo usa turbogears y parece ser también el más apropiado, aunque eventualmente no usara turbogears.

--> Para la lógica del negocio yo pienso con turbogears, sin embargo no se si será la mejor opción, porque un requerimiento que es muy importante, es que los puntos de venta esten conectados, sincronizados y "perfectos" (uds. me comprenden), no pueden fallar.  La parte web es más para administración y oficina, pero la parte escritorio es para movimientos diarios "en el mostrador".   Por esto no se si lo mejor es turbogears (web) para la lógica y comunicación con webservices para los POS (puntos de ventas) u otra opción.   Qué opinan?

No voy a liarte con las alternativas posibles, pero lo que mejor puede
funcionar sería crear una serie de servicios webs ofreciendo las
funcionalidades básicas hecho con el framework web que quieras. A
partir de ahí, la capa de presentación podría ser la que quieras. Lo
bueno de este diseño es que desacoplas la lógica de negocio de la
presentación de los datos; lo malo es que los servicios web son
asíncronos, algo que no encaja bien con cierto tipo de aplicaciones de
escritorio (en "concurrencia").

--> Sí va a tener concurrencia, varios puntos de ventas por almacén, varios almacenes...  Si lo hiciera al revés sería mejor opción?, realizar la lógica no con turbogears sino con otro framework que no necesariamente sea web pero que pueda incluir los clientes web.

Si la sincronización de los accesos es importante, una alternativa que
sí te recomiendo es twisted (usado también por Zope3) con "reactores"
especializados para varios GUIs.

  http://twistedmatrix.com/

Separando las funcionalidades básicas en servicios webs también te da
la libertad de elegir el framework que quieras para  cada uno, incluso
usando distintos lenguajes, algo que parece estar tan de moda con el
"cloud computing".

--> Voy a estudiar el twisted, me interesa mucho desacoplar la lógica del negocio y utilizar las interfaces con los clientes cómo las necesite.

Las posibilidades son innumerables, sin ningún framework llegue a
integrar todo de modo sencillo, que es lo que preguntabas. Siento no
poder ser más concreto.

--> Sí hay muchas posibilidades, por eso les hago la consulta a uds que tienen experiencia en Python.  gracias de antemano.

_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes



      ____________________________________________________________________________________
¡Obtén la mejor experiencia en la web!
Descarga gratis el nuevo Internet Explorer 8. 
http://downloads.yahoo.com/ieak8/?l=e1
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es