SlideShare una empresa de Scribd logo
1 de 37
Aplicaciones actualizadas
¡al instante!
#GX2914




                        Gonzalo Gallotti
                                 Artech
¿Aplicaciones actualizadas
       al instante?
Problema

   New Data      Thanks for
   Available!   the update!
GeneXus Tilo

• Nuevos tipos de aplicaciones

• Resolver escenarios más complejos

• Aplicaciones más interactivas

• Mejor UX
1   Escenarios

2   Implementación

3   Solución
Escenario I




Datos en tiempo real
Seguimiento de flota
Escenario I: Datos en tiempo real
Reserva de asientos
Escenario I: Datos en tiempo real
Escenario II




Disparo eventos en cliente
Escenario III




 Feedback inmediato
Progress Bar
1   Escenarios

2   Implementación

3   Solución
Evolución

                              Comet
                       AJAX


 Entire page reloads
WebSockets
Hacia dónde vamos?
                                      WebSockets
                              Comet
                       AJAX


 Entire page reloads
1   Escenarios

2   Implementación

3   Solución
Tipo de Datos
‘Notification’
Notification
• Notify (&ClientId, &Message)

• Broadcast (&Message)


     Event OnMessage (&NotificationInfo)

        //Código de Usuario

     EndEvent
Enviando una notificación..
Recibiendo la notificación..
Progress Indicator
• Progress Indicator
  – Built-in GX Tilo
  – User Control
DEMO



           Escenario I
       Datos en tiempo real
DEMO



          Escenario II
       Eventos en cliente
DEMO



          Escenario III
       Feedback inmediato
¡MUCHAS GRACIAS!

Más contenido relacionado

Similar a ¡Aplicaciones actualizadas al instante! Feedback y notificaciones inmediatas en aplicaciones Web

Desarrollo web para móviles
Desarrollo web para móvilesDesarrollo web para móviles
Desarrollo web para móviles
coto
 

Similar a ¡Aplicaciones actualizadas al instante! Feedback y notificaciones inmediatas en aplicaciones Web (7)

Eventos en las páginas
 Eventos en las páginas Eventos en las páginas
Eventos en las páginas
 
Context-aware User Effectiveness Assessment System for Mobile Applications
Context-aware User Effectiveness Assessment System for Mobile ApplicationsContext-aware User Effectiveness Assessment System for Mobile Applications
Context-aware User Effectiveness Assessment System for Mobile Applications
 
Desarrollo web para móviles
Desarrollo web para móvilesDesarrollo web para móviles
Desarrollo web para móviles
 
Optimización de Contenido Flash para Móviles
Optimización de Contenido Flash para MóvilesOptimización de Contenido Flash para Móviles
Optimización de Contenido Flash para Móviles
 
Geoinquietos: La web movil está aquí...
Geoinquietos: La web movil está aquí...Geoinquietos: La web movil está aquí...
Geoinquietos: La web movil está aquí...
 
Innovación, Omnicanalidad y Movilidad en el Recobro - David Romero CMO Altitu...
Innovación, Omnicanalidad y Movilidad en el Recobro - David Romero CMO Altitu...Innovación, Omnicanalidad y Movilidad en el Recobro - David Romero CMO Altitu...
Innovación, Omnicanalidad y Movilidad en el Recobro - David Romero CMO Altitu...
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 

Más de GeneXus

Más de GeneXus (20)

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) Bots
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in Action
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuro
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y Plataformas
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivos
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industria
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsive
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAP
 
Going mobile
Going mobileGoing mobile
Going mobile
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
 

¡Aplicaciones actualizadas al instante! Feedback y notificaciones inmediatas en aplicaciones Web

Notas del editor

  1. Cual es el problema? Que es lo que desearíamos?Supongamos que un cliente ingresa a mi sitio.Luego en algún momento ocurre un evento en el servidor que modifica datos. Por lo tanto el cliente a partir de ese momento está viendo una vista desactualizada de los datos. Nos gustaría que nuestros clientes sean notificados inmediatamente de este suceso. Por lo tanto, que es lo que necesitamos?Necesitamos poder invertir el diálogo entre la aplicación y el cliente. Y así poder notificar directamente al cliente sobre los cambios sucedidos.
  2. El primer ejemplo de este escenario que se nos vino a la mente fue una aplicación de seguimiento de flotas.En donde tenemos un mapa con la ubicación de cada flota y sería deseable que la ubicación de cada unidad se refresque de manera inmediata sin interacción del usuario. Nos gustaría que la información se actualice automáticamente. La información se actualice cuando realmente hay información nueva,
  3. Este ejemplo fue sacado de un sistema real.Supongamos una aplicación para reservar entradas en un cine. En uno de los pasos quiero reservar mis asientos.Estoy viendo las butacas de cuando ingresé a la página. Desearía que la disponibilidad de los asientos sea presentada en tiempo real y que no ocurriera que el asiento que elijo al final de la transacción no esté más disponible en caso que me demore un tiempo en elegir y que justo otro usuario elija el mismo que yo.
  4. También hay ejemplos claros que usan esta funcionalidad como por ejemplo sitio de noticias.El muro de Facebook o el Chat son típicos casos donde se utilizan estos mecanismos de notificaciones en tiempo real para mejorar la experiencia del usuario. En DropBox también hay una fuerte utilización de este tipo de técnicas. En fin, hay muchos otros ejemplos en la web que usamos cotidianamente lo que nos demuestra que este requerimiento que se ha transformado en una necesidad y no en un lujo.
  5. Estoymostrandounaimagen deuna app real de reserva de habitaciones de hoteles.Porejemplocuandoyoingresé, me parecióinteresanteque en un momentodesps de algunossegundos me apareció un mensajediciendo “Atencion” miraque hay más de 10 personas mirandoestahabitación. Luego “ miraque solo quedan 2 habitaciones”. Esdecir me ibanotificandoinmediatamentelasactualizaciones de estahabitación. Esto no tengodudas de quesirvecomoestímuloparaque los clienteshagansusreservasmásrápidamente. Y es un ejemplo de estetipo de escenario en dondequierodispararalgúnevento en el cliente a partir de algúneventoqueocurrió.
  6. Otro ejemplo claro que hoy no podemos resolver con GX de forma nativa es la notificación de progreso de una tarea.Es decir, poder disparar una tarea, que no tranque la UI y que además me vaya notificando el % de progreso de la misma. Esta funcionalidad parece imprescindible para muchas aplicaciones que se desarrollan en la actualidad. En fin, son muchos los usos que le podemos dar. La mala noticia es que hoy es complicado de resolver estos escenarios.La buen noticia es que GeneXus Tilo, resolver esto será muy sencillo.
  7. Para ver como vamos a implementar esta nueva funcionalidad, es necesario entender como fueron evolucionando las tecnologías en lo en lo que se refiere a la comunicación navegador/servidor. Ya que el problema en cuestión básicamente radicaba en que no teníamos forma de comunicarnos directamente con el cliente. Veamos entonces en que etapa estamos y hacia donde vamos. En la primer etapa se refrescaba totalmente la pantalla en cada acción. Si bien funciona bien, la experiencia de usuario no era la mejor. Luego en el año 2005 se introdujo la AJAX lo que nos permitió mejorar enormemente la experiencia de usuario al no tener que recargar toda la página ante una acción del usuario. Luego vino Comet (long polling) quepermitemantenerunaconexiónpermanente con el servidor. Si bienresuelve el problema, consideramos que es una especie de WorkAround que preferimos de evitar por ahora. (offtopic)La diferencia que existe entre AJAX y Comet es que en este modelo se mantiene una conexión abierta entre el cliente y el servidor web; el cliente no solicita los datos, pero si envía información al servidor, y el servidor no le responde al cliente con un bloque de datos, se espera a que haya algún evento de lado del servidor para enviar la información.We see that WebSocket is a bit simpler than XMLHttpRequest but it amplifies the problem created with the asynchronous mode: data are received at any time unrelated to the order in which is made the request to the server. The user has to bring order in what he receives.Websocket connections have significantly less overhead than traditional XmlHttp based connections, because they are not stateless, meaning, you’re not sending the same header information every single time you need to retrieve data.
  8. Haciadondevamos?Nosdirigimosentonces a soportarestosescenarios a partir del Uso de HTML5 WebSockets.En GeneXusTiloutilizaremosestatecnologíapara resolver los requerimientos.
  9. Con GX queremos que puedan empezar a resolver estos tipos de escenarios, creando aplicaciones mucho más interactivas, teniendo como objetivo mejorar radicalmente la experiencia del usuario. Y lo más importante de todo, brindarles a ustedes una solución simple de usar y apoyada en lo último en tecnología que es donde queremos estar.