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

Duda sobre como planetear un programa (etapa de diseño)

Estas en el tema de Duda sobre como planetear un programa (etapa de diseño) en el foro de Programación General en Foros del Web. Voy a crear una aplicacion para que los alumnos puedas ver sus notas, horarios, examenes,... y los profesores puedan poner las notas de los examenes, ...
  #1 (permalink)  
Antiguo 16/06/2008, 05:54
 
Fecha de Ingreso: julio-2004
Ubicación: Valladolid
Mensajes: 46
Antigüedad: 19 años, 9 meses
Puntos: 0
Duda sobre como planetear un programa (etapa de diseño)

Voy a crear una aplicacion para que los alumnos puedas ver sus notas, horarios, examenes,... y los profesores puedan poner las notas de los examenes, tareas,.... Tanto los profesores como los alumnos tendran su aplicacion instalada en su casa.

Bueno, pues entonces he pesando en hacer un diseño cliente-servidor, las aplicaciones del alumno y del profesor seran los clientes, y luego tendre un servidor que sera el que se encargue de mandar los datos que los profes y alumnos le pidan, de autentificar a los usuarios, de consultar a la base de datos que es como se almacena la informacion,.....

Entonces la duda de diseño es ¿como hago la comunicacion entre cliente servidor?. ¿Me invento un protocolo?. Es decir si el servidor recibe la cadena /alumno;16/ devuelte los datos de ese alumno, que recibe /asignatura:10/ pues los datos de esa asignatura,...... y asi con todo lo que me haga falta.
¿o hay alguna otra forma mas elegante de hacerlo?. Habia pensado en rmi pero no lo acabo de ver claro, porque para mi esto responde a cliente servidor y no a programacion distribuida.

Gracias
  #2 (permalink)  
Antiguo 16/06/2008, 20:33
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: Duda sobre como planetear un programa (etapa de diseño)

Mmm, depende de muchas cosas... si programas en objetos no es lo mismo que un programa un poco mas estructurado hecho en C, o VB.... Personalmente creo que si estas pensando en una arquitectura cliente servidor donde el servidor solo poseerá una base de datos, bien podrías olvidarte de protocolos y hacer querys en la base desde el cliente. Y usar hibernate si se inclinas por los objetos.

Sino te recomendaría que leas algo de SOAP, XML, WebServices...

Suerte!
__________________
Saludoss
Guille
  #3 (permalink)  
Antiguo 17/06/2008, 04:02
 
Fecha de Ingreso: julio-2004
Ubicación: Valladolid
Mensajes: 46
Antigüedad: 19 años, 9 meses
Puntos: 0
Respuesta: Duda sobre como planetear un programa (etapa de diseño)

Las consultas a la base de datos solo las puedo hacer desde el servidor nunca desde el cliente, como mucho podria poner un servidor que recogiese las consultas de sql y las enviase a la base de datos y luego devolviese el resultado de la consulta, pero no me convence porque si cambio algo en la base de datos, me tocaria cambiar cosas en los clientes y eso no me parece un buen diseño.

He mirado un poco SOAP, y parece que se puede adaptar a lo que me interesa.

Otra dudilla,

A ver, en el cliente del alumno, tendre clases como asignatura, horario,..... y ese tipo de cosas. Esa informacion realmente esta almacenada en la base de datos del servidor, entonces para cargar esa informacion en el cliente ¿lo podria hacer de esta manera?. Utilizo el patron DAO creando la clase asignaturaDAO y esta sera la que a traves del uso de SOAP con el servidor me consiga la clase asignatura.

Por lo que he leido DAO sirve para abastraerse de como se hacen persistente los datos, ya sea la forma de hacerlo en ficheros, bases de datos, a traves de red.....

Gracias
  #4 (permalink)  
Antiguo 17/06/2008, 09:45
 
Fecha de Ingreso: abril-2008
Mensajes: 264
Antigüedad: 16 años
Puntos: 2
Respuesta: Duda sobre como planetear un programa (etapa de diseño)

Claro, el patron DAO sirve para tener varias fuentes de datos para lo mismo y que sea transparente.

Por ejemplo, tienes un AlumnoSQLServerDao y un AlumnoXMLDao. Ambos respetan la interfaz AlumnoDao que tendrá metodos como getAlumno(...) y esas cosas...

Se supone que sirve para tener varias fuentes de datos y utilizarlas polimorficamente. Igualmeeeente, no lo recomiendo si no piensas hacer algo por el estilo.

Si tu único cambio de fuente de datos es cambiar de una BD a otra, te recomendaría usar hibernate y olvidarte un poco de los Daos, puesto que te agregan una complejidad que no consideraría necesaria en ese caso.

Suerte!
__________________
Saludoss
Guille
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 21:01.