Foros del Web » Programación para mayores de 30 ;) » Programación General »

Duda modelo de 3 capas distribuidas - app de escritorio

Estas en el tema de Duda modelo de 3 capas distribuidas - app de escritorio en el foro de Programación General en Foros del Web. Hola estimados. Sé que temas como estos han sido preguntados miles de veces; pero aún tengo una duda que no me queda clara. Si programo ...
  #1 (permalink)  
Antiguo 18/11/2013, 14:39
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 8 meses
Puntos: 27
Duda modelo de 3 capas distribuidas - app de escritorio

Hola estimados.
Sé que temas como estos han sido preguntados miles de veces; pero aún tengo una duda que no me queda clara.

Si programo una aplicación de escritorio separada en 3 capas (las clásicas de presentación, negocio, datos) pero quiero además distribuirlas físicamente en distintos equipos ¿ como lo haría para que se comunique la capa de presentación con la de negocio viendo que estarían en distintos PCs? (lo que quiero es dejar la presentación en el cliente y negocio + datos en el server)

Lo que pasa es que generalmente programo web en donde a través del browser accedo; pero en una app de escritorio ¿cómo?

Lo que en realidad me da algo de desconfianza; quizás infundada; es dejar todas las capas en el cliente; ya que estaría obligado a tener abierto el puerto de comunicas de la base de datos en la red; en cambio como pretendo podría permitir que solo se conectaran local (localhost o 127.0.0.1). La capa de negocio haría el trabajo.

¿O dependería de dejar alguna alternativa de consulta como web service u otro?

Paricularmente este proyecto pensaba llevarlo a cabo con Python yb wxPython, aunque si me resulta muy complicado tendría que empezar a repasar Java probablemente.

Saludos
  #2 (permalink)  
Antiguo 19/11/2013, 02:19
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Duda modelo de 3 capas distribuidas - app de escritorio

Este tipo de modelos es bastante habitual y se suele hacer mediante webservices. Estos proporcionan una API para el acceso a los datos del servidor , además de hacer de filtro sobre la información que es accesible y como es accedida. Al ser un webservice, el puerto de comunicación es el 80 (HTTP) por lo que no hay que habilitar nada en el firewall del cliente y por otro lado tienes todos los datos en tu lado, por lo que evitas manipulaciones "extrañas" (que el cliente intente acceder a la BBDD directamente,etc.)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 19/11/2013, 07:15
 
Fecha de Ingreso: agosto-2008
Mensajes: 198
Antigüedad: 15 años, 8 meses
Puntos: 27
Respuesta: Duda modelo de 3 capas distribuidas - app de escritorio

Gracias por responder Malenko. Ahora lo tengo un poco más claro. Básicamente hacía la pregunta debido a que programar el sitio entero en base a web services haría que se extienda el período de desarrollo. Y al final mi idea es no tener abierta la base de datos; no tengo la necesidad de aceder a través de diferentes medios o clientes livianos.

Había pensado en compartir un directorio del server en cada cliente en donde esté la capa de negocio; pero al final igual tendría que abrir el puerto de la base de datos para que se comuniquen; además que no se si los archivos pueden quedar bloqueados para otro cliente mientras el anterior los esté usando; quizás solo compartidos en modo de lectura. ¿Hay algo así? ¿alguna librería que permite programar de manera más tradicional a pesar de la separación física de las capas para Python o Java?

He visto bastante software en donde al final lo que hacen es instalar la app en el cliente y compartir la carpeta donde se instala con permisos de lectura y ejecución. Ejecutan la app directamente ahí. De ese modo hacen referencia directa a la base de datos (puerto abierto) o compartir la carpeta de la base de datos (access). Sin embrgo esto último creo que no lo podría hacer con otro DBMS distinto como MySQL o PostgreSQL que son los que me gustaría usar por tema de licencias.

Saludos.

Última edición por refreegrata; 19/11/2013 a las 07:24

Etiquetas: app, capas, escritorio, java, modelo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:52.