PDA

Ver la Versión Completa : Iniciándome en aplicación cliente-servidor+bases datos


LoPiTaL
19-12-2010, 15:40:44
Hola a todos!
Antes que nada, si creéis que no es el foro correcto, por favor, cambiadlo.

Tengo una serie de preguntas, todas relacionadas con un proyecto nuevo que voy a emprender, y me surgen por eso mismo, debido a que es un proyecto nuevo, me gustaría hacerlo con el lenguaje que mejor se adapte a mis necesidades.
Os cuento: necesito realizar una APLICACIÓN WEB, que lea, desde un servidor, una base de datos.
Viendolo así, decidí migrar a RADPHP y utilizar PHP para desarrollar la aplicación.

Una de las partes de dicha aplicación es un chat, con login y logout. Al acceder es fácil ver quién está conectado (leo en la tabla correspondiente y ya); pero si alguien se desconecta, en PHP y bases de datos sólo, no es tan sencillo detectarlo. Por tanto, he decidido añadir un PROGRAMA QUE ACTÚE DE SERVIDOR que se encargue de gestionar las conexiones y desconexiones de los clientes y de leer los datos de la base de datos y re-enviarlos a los clientes que los hayan pedido. Además puedo añadir en este punto encriptación, etc... creando una aplicación multi-tier (esto lo he leído por ahí, que se llaman así :D ). Evidentemente, el lenguaje del servidor es DELPHI (también he leído que es interesante para este tipo de cosas, usar el Delphi Prism (Delphi for .NET).

Sin embargo, ahora se me plantea otro problema. Desde RadPHP no hay ningún componente que sea útil para conectar / desconectar con un servidor y mandar datos vía TCP... Por tanto, ahora estoy dudando si RadPHP es una buena opción para este tipo de aplicación.
¿Qué lenguaje me recomendáis vosotros que debo utilizar? Recordar que dicha aplicación se debe poder ejecutar desde un navegador web, y que, si no es extremadamente complicado, sería interesante poder ejecutarla también desde un .exe (aunque esto ya es secundario).
¿He planteado la aplicación de forma correcta? ¿O parto de unas ideas que no son las adecuadas? Mi experiencia con aplicaciones web es bastante limitada, yo soy más de aplicaciones stand-alone en Windows y poco más (ahora estoy intentando abrir mis conocimientos a este otro mundo).
¿Qué opináis vosotros?

Un saludo,
LoPiTaL

LoPiTaL
19-12-2010, 17:53:46
Ampliando un poco más mis dudas: no he encontrado ninguna forma para que el servidor le transmite al cliente (en un navegador web, PHP) información sin que éste la haya pedido.

Todo lo que he visto hasta ahora (bases de datos tal cual, DataSnap, etc) se limitan a peticiones del cliente y respuestas del servidor, pero no he encontrado ninguna forma que se pueda iniciar la comunicación al revés (el servidor envía un mensaje y espera del cliente una respuesta), salvo si utilizo componentes del estilo de TCPClient y TCPServer y tal, pero esto dejaría de ser una aplicación web...

¿Alguien puede ayudarme en este tema?
Gracias de antemano.

Un saludo,
LoPiTaL

alquimista_gdl
06-03-2011, 06:20:54
Hola,

Ya ha pasado tiempo de que planteaste tu pregunta... de igual manera, la posteaste en este foro (http://forums.delphi-php.net/)?

Creo que hay personas ahí que te pueden ayudar.... especialistas en RadPHP (o D4PHP)


Saludos

LoPiTaL
06-03-2011, 16:45:19
Gracias por tu respuesta. Si, después de dar vueltas y vueltas al asunto al final conseguí solventarlo:
Al principio no conseguía encontrar cómo resolverlo, así que dije, "es igual, voy a tirar adelante y seguro que ya encuentro forma de hacerlo cuando me ponga a teclear", así que empezé.
Me decidí por empezar con RadPHP, que era la forma más sencilla de iniciarme en la programación web.
Una vez elegido el entorno, debía elegir una base de datos sobre la que trabajar, y empezé a ver qué caracterizaba a cada una de ellas. Primero pensé en MySQL por popularidad y vi que mi limitación no se solventaba. Seguí mirando bases de datos y descubrí Firebird (o Interbase), que este mismo foro tiene una sección dedicada a ella. Esta base de datos se diferencia del resto en que te proporciona eventos (no recuerdo cómo los llaman ahora mismo), pero si se produce algún cambio en la base de datos, el servidor mismo te manda una notificación como que ha pasado algo :O, y todo eso PHP lo soporta (doble :O).

Así que ya lo tenía claro: RadPHP + Firebird y ya tengo resuelto el problema inicial sin complicarme tanto como lo estaba planteando en mi post inicial.

En cuanto al foro que comentas, tras empezar con RadPHP y hacer varias búsquedas en Google es de los primeros links que aparecen, así que ya lo tengo en favoritos :D

Gracias por la respuesta.
Un saludo,
LoPiTaL