ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO
FACULTAD DE INFORMÁTICA Y ELECTRÓNICA
CARRERA DE SOFTWARE
SOFTWARE EN TIEMPO REAL
TEMA:
INFORME
DOCENTE:
ING. JAIME CAMACHO
INTEGRANTES:
JESSICA TORO (6806)
SEMESTRE:
SÉPTIMO
PARALELO:
“1”
ENUNCIADO:
Realizar un informe de las funcionalidades de AJAX, HTTP, PIGGYBACK, POLLING,
Y LONG POLLING que son las técnicas iniciales de Aplicaciones Web en Tiempo
Real; comparándolas con el Websocket.
DESARROLLO:
AJAX
Es un conjunto de técnicas utilizadas para el desarrollo web que permiten que las
aplicaciones web funcionen de forma asíncrona, mientras procesa cualquier tipo
de solicitud al servidor que se encuentra en segundo plano.
Funcionalidades
Recuerda que AJAX no es una sola tecnología, ni es un solo lenguaje de
programación. El sistema suele incluir:
El lenguaje principal es HTML/XHTML y la presentación es CSS.
Modelo de objetos de documento (DOM) para mostrar e interactuar
con datos de forma dinámica.
XML para intercambio de datos y XSLT para manipulación de datos. Muchos
desarrolladores han comenzado a reemplazarlo con JSON porque tiene una
forma más similar a JavaScript.
Un objeto XMLHttpRequest para comunicación asíncrona. Finalmente, el
lenguaje de programación JavaScript reúne todas estas tecnologías.
Requiere algunos conocimientos técnicos para entenderlo completamente.
Comparativa
Base de comparación WEBSOCKET AJAX
Se usan para definir la Se utiliza para crear
comunicación full-duplex aplicaciones rápidas e
entre distintos servidores y interactivas utilizando XML,
Características principales
clientes. Se centran en la HTML, CSS y javascript y asi
concurrencia y la mostrar contenido dinámico.
optimización del rendimiento.
Consta de 4 eventos: open, Admite eventos y acciones al
Eventos y Acciones
mensaje, cerrar y error. momento de crear objetos.
Se pueden originar en algunos Proporciona seguridad en
casos denegación de servicio, ambos lados, ya que el usuario
hombre en el medio, entre puede autenticarse,
otros, para evitar esto se debe autorizarse y proteger sus
Seguridad
realizar configuraciones datos. Por lo cual el código
adicionales. esta limitado por un modelo
de seguridad de espacio
aislado.
Otras características Permite la comunicación em Utiliza diferentes tecnologías
tiempo real entre el cliente y para desarrollar páginas
servidor. dinámicas.
Ayudan a transformar el Una vez enviado el formulario
estándar multiplataforma javascript realiza una solicitud
para la comunicación en al servidor y muestra el
tiempo real. resultado actualizado en
Permite crear nuevos tipos de pantalla.
aplicaciones, ya que El usuario puede trabajar
proporciona una continuamente cuando un
comunicación bidireccional a programa cliente solicita
través de una conexión TCP. información del servidor en
segundo plano.
HTTP
HTTP es esencialmente un protocolo de solicitud/respuesta en el modelo
informático cliente-servidor y es el principal medio de comunicación en la World
Wide Web. http define estándares de sintaxis y semántica informática
para establecer la comunicación entre los distintos elementos (servidores, clientes,
proxies) que componen la arquitectura web.
Funcionalidades
Cuando se creó, el protocolo HTTP solo servía para solicitar documentos HTML a
un servidor web. Hoy en día, en cambio, se usa con gran variedad de fines:
Los navegadores usan HTTP para solicitar cualquier tipo de
archivo habitual en las webs modernas: de texto, de vídeo, de código de
programación, etc.
Los programas de aplicación utilizan HTTP para cargar archivos y
actualizaciones de servidores lejanos.
La API basada en REST es una solución que utiliza HTTP para controlar
servicios web.
Otra tecnología que se basa en HTTP es WebDAV.
En la comunicación de máquina a máquina se utiliza HTTP como
protocolo de comunicación entre servicios web.
Los reproductores multimedia también utilizan HTTP.
Las operaciones de acceso a bases de datos en la web y, por lo tanto,
también las operaciones CRUD, pueden realizarse también mediante HTTP.
Comparativa
Base de comparación WEBSOCKET HTTP
Utiliza el modo dúplex Utiliza modo semidúplex en el
completo, ambas direcciones que solo se permite una
Dúplex
pueden trabajar acción a la vez.
simultáneamente.
Patrón de mensajería Mensajería Bidireccional Mensajería Unidireccional
Tanto el cliente como el El cliente inicia la solicitud
Solicitudes servidor pueden enviar cada vez
información.
La conexión permanece activa La conexión termina después
Conexión hasta que uno de ellos lo de obtener una solicitud de
cierra. respuesta.
Tanto el cliente como el El servidor puede enviar solo
servidor pueden enviar y una respuesta para una
Envío de información recibir múltiples piezas de solicitud.
información para una
conexión.
Aplicaciones que prefieren Aplicaciones de búsqueda
actualizaciones constantes y para tratar datos estadísticos
Uso según el tipo de
actualizaciones inmediatas o escenario de manejo de
aplicación
elige el protocolo de errores elegirá HTTP.
comunicación web socket.
PIGGYBACK
Piggyback es el proceso de agregar un reconocimiento al paquete de datos que se
envía. El concepto de positividad se explica a continuación: supongamos que hay
una comunicación bidireccional entre dos dispositivos A y B. Cuando A envía un
marco de datos a B, el dispositivo B no envía un reconocimiento a A hasta que B
tiene el siguiente marco para enviarlo, adelante Y B envía un acuse de recibo tardío
con la trama de datos. El método de agregar un acuse de recibo tardío a la
transmisión de una trama de datos se conoce como "suggybacking".
Funcionalidades
Los datos de esfuerzo son ligeramente diferentes de los protocolos de ventana
deslizante utilizados en el modelo OSI. En el marco de datos en sí, insertamos un
campo adicional para reconocimiento. Cuando la parte A quiere enviar datos a la
parte B, también lleva datos ACK adicionales en PUSH. Tres reglas gobiernan la
transmisión de datos de la navegación con mochila. Cuando la estación A quiere
enviar datos y un acuse de recibo, mantiene ambos campos allí. Cuando la estación
A quiera enviar un acuse de recibo, decida después de un tiempo si necesita enviar
una trama de datos, si enviar una trama ACK sola o agregarle una trama de datos.
Si la estación A desea enviar solo datos, el campo de confirmación anterior se envía
con los datos. La estación B simplemente ignora este duplicado cuando recibe una
trama ACK.
Comparativa
WebSockets agrega sabor a la web al permitir que los sitios web actualicen el
contenido sin tener que esperar al usuario. A diferencia de otras piggyback que
aprovechan el protocolo HTTP, el protocolo WebSocket crea una verdadera
conexión continua entre el usuario y el servicio web, lo que permite que la
información fluya fácilmente entre ambos extremos. WebSockets permite a los
proveedores crear un canal eficiente y de baja latencia entre su contenido y los
clientes.
POLLING
El sondeo es una técnica en la que el cliente solicita periódicamente nuevos
datos al servidor. Podemos hacer la investigación de dos formas: investigación
corta e investigación larga. En pocas palabras, el sondeo corto es un temporizador
basado en AJAX que llama con una demora fija, mientras que el sondeo largo se
basa en Comet.
Funcionalidades
Con una breve consulta, el cliente verifica automáticamente el servidor en busca de
nueva información a intervalos predeterminados. El servidor aún no puede enviar
una respuesta sin una solicitud del cliente, pero dado que el cliente realiza
automáticamente la solicitud periódicamente, también se envía nueva información
al cliente con regularidad. Piense en ello como un niño en un automóvil que
pregunta "¿estamos ahí? ¿estamos ahí?" cada poco segundo. Dependiendo de qué
tan corto sea el intervalo entre cada solicitud automática enviada por el cliente,
puede aparecer una breve encuesta en tiempo real.
Comparativa
Base de comparación POLLING WEBSOCKET
Corrientes Bidireccional Bidireccional
Compatibilidad con navegador Si posee Si posee
Compatibilidad con infraestructura Si posee No posee
Facilidad de desarrollo Si posee No posee
Carga (red/dispositivo) No posee Si posee
Latencia de la aplicación No posee Posee a medias
LONG POLLING
Los Long Polling toma el sondeo de solicitud/respuesta haciéndolo mas eficiente
debido que las solicitudes repetidas a un servidor desperdician recursos. Por ello,
en el sondeo prolongado el servidor decide mantener abierta la conexión de los
clientes durante un lapso largo de tiempo y proporciona una respuesta al
generarse nuevos datos que se encuentran disponible o si el umbral de tiempo de
espera aun alcanza.
Funcionalidades
En este modelo, el cliente realiza la solicitud y el servidor continúa la solicitud
hasta que hay nuevos datos disponibles solo cuando hay nuevos datos
disponibles, el servidor envía los datos al cliente. Cuando el cliente recibe nuevos
datos, inmediatamente activa el servidor para recuperar los nuevos datos. Una vez
más, el servidor retiene esta solicitud hasta que hay nuevos datos disponibles
y, tan pronto como hay nuevos datos disponibles, los
envía inmediatamente al cliente. Parece ser una opción viable para una aplicación
de chat.
Comparativa
Base de
LONG POLLING WEBSOCKET
comparación
- Implementa detrás de - Mantienen abierta una sola
XMLHttpRequest, que es compatible conexión y eliminan los problemas
con casi todos los dispositivos, por lo de latencia causados por solicitudes
que generalmente no es necesario largas.
admitir otras capas detrás de él. Se admite la comunicación asíncrona
- En los casos en los que es necesario de dúplex completo para que tanto el
manejar excepciones, o cuando se cliente como el servidor puedan
puede consultar un servidor para enviarse mensajes entre sí de forma
obtener nuevos datos pero no admite independiente.
Ventajas
una consulta, la consulta principal a - No usa XMLHttpRequesty, por lo
veces puede tener problemas. uso que los encabezados no se envían en
limitado y se puede implementar con cada solicitud del servidor. Esto a su
XMLHttpRequest o JSONP utilizando vez reduce el tamaño de la carga de
etiquetas de script HTML simples. datos.
- Pasan por la mayoría de los
firewalls sin reconfiguración y tienen
un modelo de seguridad basado en el
origen.
Desventajas - Consume más recursos del - No se recuperan
servidor. automáticamente cuando se
- Puede tener sobrelatencia interrumpen las conexiones;
latencia porque requiere Es algo que debe
múltiples saltos entre implementar usted mismo, y
servidores y dispositivos. es parte de la razón por la
- La secuenciación de mensajes que existen muchas
confiable puede ser un bibliotecas del lado del
problema con una solicitud cliente.
larga, porque varias - Los navegadores anteriores
solicitudes HTTP del mismo a 2011 no admiten
cliente pueden ejecutarse conexiones WebSocket, pero
simultáneamente. esto se está volviendo cada
- Dependiendo de la vez más irrelevante.
implementación del servidor,
el acuse de recibo de un
mensaje por parte de una
instancia de cliente también
puede causar que otra
instancia de cliente nunca
reciba el mensaje esperado, ya
que el servidor puede creer
erróneamente que el cliente
ya recibió la información
solicitada.
CONCLUSIÓN
En la actualidad, existe un sin número de técnicas iniciales que se utilizan en las
aplicaciones web en tiempo real que son muy utilizadas al igual que los websockets
ya que algunos ellos ofrecen algunas ventajas que deben ser aprovechadas, todo
esto depende netamente del desarrollador cual de estas técnicas le resultan
factibles o son de su dominio.
BIBLIOGRAFÍA:
Gustavo, B. (2019, mayo 9). ¿Qué es AJAX y cómo funciona? Tutoriales
Hostinger. [Link]
Pedamkar, P. (2018, noviembre 21). Web sockets vs Ajax. EDUCBA.
[Link]
Proxyscrape, B. (2022, diciembre 2). Websocket vs HTTP: 6 unique differences
& use cases. ProxyScrape. [Link]
WebSockets vs. HTTP: Comparing pros and cons. (s/f). Ably Realtime.
Recuperado el 5 de enero de 2023, de [Link]
http