Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Construcción de aplicación: duda entre posibilidades

Estas en el tema de Construcción de aplicación: duda entre posibilidades en el foro de Frameworks JS en Foros del Web. Buenas noches. Hace poco he dado mis primeros pasos con AJAX y la verdad es que me ha parecido una técnica muy potente y con ...
  #1 (permalink)  
Antiguo 10/08/2011, 15:22
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 3 meses
Puntos: 253
Construcción de aplicación: duda entre posibilidades

Buenas noches.

Hace poco he dado mis primeros pasos con AJAX y la verdad es que me ha parecido una técnica muy potente y con un sinfín de posibilidades. Ahora me planteo una aplicación y os quería consultar si lo veis posible y, en caso de que si, cómo plantearlo. Para nada quiero código, simplemente estoy investigando y me da miedo empezar a hacerlo con AJAX y no poder terminarlo por ser imposible.

Verán, la aplicación es en tiempo real y ahora mismo está montada en VisualBasic (muy bueno para eventos, pero algo antiguo ya) y quería montarla a través de programación web. El funcionamiento es similar al de cualquier herramienta de monitorización, la aplicación recibe unos mensajes de un servidor (que está montado con TIBCO, si alguien lo conoce) y los muestra en tiempo real, dejando los 20 últimos. Si pasa de 20 se borrarían los primeros.

El servidor (TIBCO) puede enviar los mensajes de mil maneras, es muy potente para esto. Puede enviar xml, construir peticiones y respuestas http, jms y infinidad de métodos, incluso se puede construir (con un poco de java) un buzón para los mensajes que luego recoja la herramienta de monitorización, para esto no hay problema. Mi gran duda es si podré enlazar esto desde AJAX. Es decir, el servidor no es un servidor HTTP, luego no puedo hacer peticiones HTTP normales contra dicho servidor. Más bien sería hacer un sondeo cada X segundos y que se trajera los mensajes de algún sitio con el formato que fuera. Básicamente, la idea es que la aplicación de monitorización no va a ser la que inicie la comunicación, no va a pedir los mensajes... Es más bien parte pasiva del proceso, se supone que los tiene que recibir, cuando el servidor los envíe, esta es mi gran duda en cuanto la funcionalidad.

Lo veis viable? Cómo lo montaríais? Qué potencia a la hora del sondeo tendría AJAX? Se podría hacer por ejemplo un sondeo cada 1, 2 ó 3 segundos?

Cualquier sugerencia más, es bienvenida.

Un saludo y gracias.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #2 (permalink)  
Antiguo 11/08/2011, 05:38
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 11 meses
Puntos: 1531
Respuesta: Construcción de aplicación: duda entre posibilidades

Bueno, te recuerdo que AJAX es solo el "nombre bonito" el verdadero protagonista es el XmlHttpRequest y solamente está capacitado para enviar y recibir peticiones vía HTTP (si me equivoco corrijan-me), al final si lo quieres enlazar crear un micro-server HTTP escuchando el puerto 80 en VB (u otro lenguaje) es relativamente fácil, eso si conoces muy bien el protocolo.

con respecto al enviar cada x segundos (lo que usualmente se le llama polling) no es muy beneficioso para el servidor ¿por que?: por el hecho de que esta técnica consume mucho ancho de banda, la solución seria COMET

si has investigado algo sobre COMET, me imagino que te decepcionará saber que no todos los navegadores lo manejan o soportan de igual forma, de todos modos existen alternativas como APE, longpolling y HTML5 Web Sockets.

espero que te sirva de guía, saludos
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 17/08/2011, 04:50
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 3 meses
Puntos: 253
Respuesta: Construcción de aplicación: duda entre posibilidades

Buenas,

Perdón que tardara tanto en responder, pero el proyecto se había quedado medio parado. Ahora que lo hemos comentado más y estamos mirando cómo hacerlo tenemos el tiro bastante más fijado. Voy a intentar explicarlo, para ver si @maycolalvarez o cualquier otro es capaz de resolverme mis dudas de concepto.

Lo que pretendemos es migrar una aplicación ya existente (hecha con VisualBasic) a una aplicación web sin perder la funcionalidad básica. La aplicación tiene dos partes bien diferenciadas, una es de migración muy fácil, ya que se basa en bases de datos para ofrecer cierta operativa al usuario. Esto lo sé hacer sobradamente, incluso sólo con PHP. La segunda parte de la aplicación implica dos ventanas de tiempo real, una para operaciones entrantes y otra para alertas. Ahora mismo, la aplicación VB está montada en varios ordenadores y se comporta como un manejador de eventos de recepción de mensajes. Cuando se crea una nueva operación, el servidor la trata y genera un mensaje con el resultado, las herramientas montadas en los ordenadores capturan el mensaje y lo muestran en la ventana de operaciones. Podríamos decir que el servidor es un generador de mensajes broadcast y las aplicaciones tienen sus manejadores de eventos para captura y tratamiento de dichos mensajes.

Las dos dudas que tengo para migrar esto a una aplicación web se deben a puntos negros que veo (por mi poco conocimiento de AJAX):
- En primer lugar, el sistema de escuchas. Sé que AJAX se puede montar usando request y response HTTP, pero siempre lo he montado de forma que es el cliente el que inicia la petición, no al contrario. Esto sería más como he explicado antes, un sistema de envío de mensajes broadcast y un cliente que capture dichos mensajes. No sé si AJAX se puede adaptar a esta idea.
- Y en segundo lugar, como AJAX se basa en el objeto XmlHttpRequest y este es un objeto de JS, deduzco que aunque montara el sistema de escuchas del punto anterior, este script sólo se ejecutaría cuando la página en sí estuviera abierta. De esta forma, si estoy en la página de operaciones, las alertas se perderían y viceversa.

Espero que puedan arrojar un poco de luz a mi vacío de conocimiento. Un saludo y gracias de antebrazo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #4 (permalink)  
Antiguo 17/08/2011, 05:00
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 3 meses
Puntos: 253
Respuesta: Construcción de aplicación: duda entre posibilidades

Perdón por el doble post,

Básicamente, quiero saber si con AJAX (o sólo PHP) puedo hacer que la página se refresque cuando se reciba un mensaje (sea cómo sea, HTTP, JMS... esto ya expliqué que lo podía montar de varias formas) o, incluso simplifico más, refrescar una página cuando se dé un evento generado por el servidor y no por el cliente.

Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 17/08/2011, 14:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 11 meses
Puntos: 1531
Respuesta: Construcción de aplicación: duda entre posibilidades

bueno, eso que indicas es precisamente lo que COMET te satisface: una petición persistente con el servidor en donde el mismo envía eventos al cliente, pero al menos se requiere que el cliente se conecte la primera vez desde el navegador.

como te comenté anteriormente existen las alternativas ajax longpolling, APE y HTML5 web sockets, de todas formas lo mismo lo puedes implementar con adobe flash, adobe shockwave, applets de java o similares, pero estarían atadas a tu página web, si no quieres eso creo que adobe AIR es tu alternativa.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 18/08/2011, 01:36
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 3 meses
Puntos: 253
Respuesta: Construcción de aplicación: duda entre posibilidades

Gracias por las indicaciones, echaré un ojo a todo lo que me comentas y a ver si puedo vislumbrar alguna solución.

También estaba tirando por la vía de JSP+servlets con mensajería JMS. Estudiaré ambas posibilidades por ahora, que son las que veo más factibles.

Gracias de nuevo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #7 (permalink)  
Antiguo 18/08/2011, 10:34
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 11 meses
Puntos: 1531
Respuesta: Construcción de aplicación: duda entre posibilidades

No te confundas!: JMS es un servicio de mensajería para colas de mensajes entre servidores y servicios, y no entre tu servidor/cliente web, JMS es similar a AMQP, cuyo propósito es delegar servicios a otros servidores internos en tu aplicación.

es decir que tu problema nada tiene que ver con JMS, suerte
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 22/08/2011, 01:17
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 3 meses
Puntos: 253
Respuesta: Construcción de aplicación: duda entre posibilidades

En teoría, con JMS se puede montar también un modelo de publish/subscribe gracias al servicio de nombres de Java (creo que se llamaba JNDI). En eso andamos ahora, investigando como sería si tiráramos por este lado.

Gracias por la opinión, un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #9 (permalink)  
Antiguo 22/08/2011, 16:46
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 10 años, 11 meses
Puntos: 1531
Respuesta: Construcción de aplicación: duda entre posibilidades

Ok, aclarada la duda
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax, mensajeria, monitorización, real
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:40.