Lección 4: Mensajería de última milla Flashcards

1
Q

¿Qué es la mensajería de última milla?

A
  • Es el Último tramo de la conexión hasta cliente final.

- Se trata de Conectar usuarios en internet a nuestros sistemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Dificultades.

A
  • Clientes muy heterogéneos (dispositivo móvil, PC, tablet, …)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Características del usuario externo: Dificultades de la mensajería de última milla.

A
  • Conexión por internet (no local)
  • Distintas localizaciones
  • Ancho de banda y latencias variable
  • Gran cantidad de usuarios
  • Redes no seguras
  • Clientes no controlados
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Características del protocolo HTTP.

A
  • Protocolo de aplicación estándar para web sobre TCP.
    • Basado en texto
    • Soporta distintos tipos de petición, códigos de respuesta, cabeceras, …
    • A la arquitectura utilizada para crear estos servicios se le llama REST
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es REST?

A
  • REST o Representational State Transfer es un ESTILO de Arquitectura a la hora de realizar una comunicación entre cliente y servidor.
  • REST es una arquitectura de desarrollo web que puede ser utilizada en cualquier cliente HTTP.

• Estilo de arquitectura software (usada para diseñar HTTP) con objetivo
de ser escalable y simple

• Arquitectura cliente-servidor con peticiones y respuestas

  • “Sin-estado” – servidor no guarda contexto de clientes:
  • Sistema basado en capas y en protocolos “cacheables”
  • Arquitecturas REST usan estándares web (TCP, HTTP, URL, XML, JSON, …)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

REST ¿Cómo funciona?

A
  1. El servidor siempre está escuchando en un socket TCP
  2. El cliente conecta estableciendo una sesión TCP
  3. Se envía una petición REST del cliente al servidor – HTTP Request (GET, POST,
    PUT, DELETE)
  4. El servidor response – HTTP Response (HTTP Status Codes)
  5. El cliente cierra la conexión
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Beneficios de REST.

A
  • Arquitectura conocida por todos
  • Está basado en estándares (TCP, HTTP, …)
  • Funciona para cualquier cliente, ya sea web o lenguaje de programación
  • Al estar basado en texto es muy sencillo analizar el tráfico y su contenido
  • Fácilmente ampliable
  • Al no tener estado soporta conexiones no confiables
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Problemas en REST

A

• La comunicación es bidireccional pero…
• No podemos recibir “eventos” del servidor (la comunicación la inicia el cliente)
• No soporta flujos constantes
• Es ideal para trabajar en Web, pero no tanto para mensajería bidireccional
• Para solucionar estos problemas se intentó cambiar la forma de usar REST y
aparecieron algunas soluciones no del todo estándares

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es Long Polling?

A
  • Sirve para mantener una conexión para eventos de cliente de forma “artificial”
  • Lanzamos una petición REST al servidor con un timeout “muy largo”
  • Si hay algún evento del servidor, puede responder usando la conexión abierta
  • Cuando hay respuesta o un timeout, el cliente abre una conexión nueva
  • Requiere que el cliente y servidor estén sincronizados
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Limitaciones de Long Polling.

A

• Reconexiones:
• Llevan tiempo, incrementan la latencia
• Por cada evento del servidor
• Por cada envío por parte del cliente
• Los firewalls y otros sistemas de seguridad intermedios pueden no
permitir “timeouts” altos
• Se pueden agrupar envíos en ambas direcciones para incrementar el
ancho de banda, incrementando la latencia

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es un socket?

A

Un socket de red es una estructura software dentro de un nodo de una red, que sirve de endpoint para enviar y recibir datos a través de la red.

Los sockets permiten implementar una arquitectura cliente-servidor.

Un socket es un proceso o hilo existente en la máquina cliente y en la máquina servidora, que sirve en última instancia para que el programa servidor y el cliente lean y escriban la información. Esta información será la transmitida por las diferentes capas de red.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Características de WebSockets.

A

• Estándar IETF para sockets bidireccionales servidor-navegador
• Se inicia como una llamada HTTP especial (Request UPGRADE) que “actualiza”
la conexión a un socket TCP bidireccional
• A diferencia de REST no está basado en HTTP, una vez establecida la conexión
los mensajes no tienen por que basarse en texto o tener formato específico
• Usa el puerto 80, compatible con la mayoría de “proxies” y “firewalls”
• ¡No es compatible por todos los navegadores en todas sus versiones!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Tipos de soluciones de última milla

A

Las soluciones de última milla se basan en “concentrador” con uno o varios servidores que procesan los
mensajes.

  • Para clientes finales:
  • Ofrecen APIs Javascript de comunicación para aplicaciones Web
  • Ofrecen APIs en distintos lenguajes para aplicaciones nativas

Para servidores:
• Algunas ofrecen soluciones hardware todo en uno (Solace)
• La mayoría ofrecen aplicaciones servidor o librerías para integrarlo en nuestras propias aplicaciones de backend

  • Para aplicaciones de backend:
  • Ofrecen APIs en distintos lenguajes para aplicaciones nativas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué es el balanceo de carga?

A
  • Compartir la carga de trabajo en distintas máquinas (servidores).
  • Es fundamental para poder escalar.
  • En cliente
  • El cliente selecciona entre una lista de nodos disponibles
  • Hay que cambiar el cliente para soportar mas nodos y modificar la lista
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es clustering?

A
  • Consiste en interconectar los nodos para que puedan hablar entre sí.
  • Un cluster es un conjunto de nodos interconectados.
    • Podemos tener grupos de clusters para distintas regiones
    • La comunicación entre ellos suele ser por TCP
    • A veces utilizan mecanismos de auto-discovery
    • Suelen estar basados en mecanismos de “Quorum” para evitar
    “Split Brains” (lección 6)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Cómo se comunican los clusters entre sí?

A
  • La comunicación entre ellos suele ser por TCP

* A veces utilizan mecanismos de auto-discovery

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Usos de la persistencia y el caché.

A
  • Desacoplar el envío y la recepción para soportar clientes lentos y rápidos
  • Hacer “late join” y recuperar los últimos mensajes enviados al conectar
  • Recuperar mensajes perdidos durante una caída
  • Si el flujo es constante el cliente siempre va a estar retrasado
  • ¡El cliente no tiene por que necesitar todos los mensajes!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué es conflation y para qué sirve?

A

• Agrupar cambios para limitar el número de actualizaciones a
clientes (clientes que sean lentos y no puedan obtener todas las actualizaciones)

  • Casos de uso típicos:
  • Precios de mercado de cualquier tipo
  • Sensores de medición
  • Datos de monitorización
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Implementación de conflation.

A
  • Se suele implementar con mapas de “clave-valor”
  • Cada clave contiene un valor que puede cambiar con el tiempo

• Nos interesa el último dato del valor, no los cambios intermedios
• En la siguiente actualización, se crea un único mensaje con todas las
claves cuyo valor ha cambiado

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Tipos de Conflation

A
  • Por ratio de envío

* Por cliente individual

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Conflation por ratio de envío

A
  • Se envían cambios a un ratio máximo de envío

* El coste en recursos es independiente del número de clientes

22
Q

Conflation por cliente

A

• Un mapa de valores y cambios por cliente individual
• Podemos adaptar el ratio exactamente a la capacidad del cliente
• Por cada cambio tengo que actualizar todos los mapas de todos los
clientes subscritos
• Es la mejor solución para el cliente, pero la que requiere más recursos

23
Q

En última milla las soluciones basadas en servidores hardware suelen ser las que dan mejor rendimiento ya que a diferencia de baja latencia, siempre están basadas en “concentrador” con lo que el salto adicional de red no penaliza.

Seleccione una:
Verdadero
Falso

A

Verdadero

24
Q

REST permite realizar llamadas asíncronas sobre una URL

Seleccione una:
Verdadero
Falso

A

Verdadero

25
Q

La mayoría de los navegadores no tienen soporte para peticiones Web

Seleccione una:
Verdadero
Falso

A

Falso

26
Q

Long polling es mas rápido que WebSockets en la mayoría de los casos.

Seleccione una:
Verdadero
Falso

A

Falso

27
Q

En mensajería de última milla está limitado el número de usuarios que acceden, lo que simplifica las necesidades de escalado o redundancia.

Seleccione una:
Verdadero
Falso

A

Falso

28
Q

De las siguientes características, ¿cuales son propias de mecanismos de conflation por ratio de envío?

Seleccione una o más de una:

a. Se adapta individualmente a la velocidad de los clientes
b. Consume menos recursos que los mecanismos de “conflation por cliente”
c. Se envía siempre con un ratio máximo

A

b. Consume menos recursos que los mecanismos de “conflation por cliente”
c. Se envía siempre con un ratio máximo

29
Q

Cuales de las siguientes características son típicas de clientes externos que se conectan a través de internet a un sistema.

Seleccione una o más de una:

a. Redes seguras y controladas
b. Conexión mediante Pc, móvil, Web, tablet
c. Latencias estables
d. Capacidades de ancho de banda variable
e. Distintas localizaciones

A

b. Conexión mediante Pc, móvil, Web, tablet
d. Capacidades de ancho de banda variable
e. Distintas localizaciones

30
Q

De las siguientes características, ¿cuales son propias de la solución de mensajería Universal Messaging?

Seleccione una o más de una:

a. No tiene soporte para “clustering”
b. La seguridad está basada en listas de control de acceso
c. Ofrece una solución gráfica para monitorización centralizada
d. Ademas de cliente web soporta clientes “enterprise” con librerías para Java, C++, o .Net
e. Tiene soporte para mecanismos de colas y broadcast mediante topics
f. Ofrece librerías para dispositivos móviles
g. Tiene soporte para conflation individualizado por cliente

A

b. La seguridad está basada en listas de control de acceso
c. Ofrece una solución gráfica para monitorización centralizada
d. Ademas de cliente web soporta clientes “enterprise” con librerías para Java, C++, o .Net
e. Tiene soporte para mecanismos de colas y broadcast mediante topics
f. Ofrece librerías para dispositivos móviles

31
Q

De las siguientes, ¿cuales son características del protocolo HTTP?

Seleccione una o más de una:

a. Tiene un formato bien definido con cabeceras que incluyen mucha meta-información
b. Podemos utilizar contenido binario siempre que se codifique en Base64
c. Los códigos de respuesta están definidos por el usuario
d. Está basado en mensajería UDP
e. Está basado en texto

A

a. Tiene un formato bien definido con cabeceras que incluyen mucha meta-información
b. Podemos utilizar contenido binario siempre que se codifique en Base64
e. Está basado en texto

32
Q

Los sistemas de mensajería de última milla suelen tienen mecanismos para intentar adaptarse a la velocidad del cliente en “tiempo real”.

Seleccione una:
Verdadero
Falso

A

Verdadero

33
Q

Un cluster en última milla consiste en interconectar un conjunto de servidores de forma que compartan información de monitorización, seguridad, sesiones, etc. Actuando a efectos prácticos como un único nodo consistente de cara a los clientes.

Seleccione una:
Verdadero
Falso

A

Verdadero

34
Q

TCP es el mejor protocolo para última milla ya que es confiable y nos permite mantener una sesión entre clientes y servidores.

Seleccione una:
Verdadero
Falso

A

Falso

35
Q

De las siguientes características, ¿cuales son propias de la solución de última milla Atmosphere?

Seleccione una o más de una:

a. Es una solución Open Source que ofrece su propio servidor de mensajería
b. Tiene soporte para división por topics
c. Tiene soporte para REST, Long Polling y WebSockets entre otros protocolos
d. Esta basado en el concepto de end-points y publicación en broadcast
e. Tiene su propio mecanismo centralizado de monitorización

A

c. Tiene soporte para REST, Long Polling y WebSockets entre otros protocolos
d. Esta basado en el concepto de end-points y publicación en broadcast

36
Q

De las siguiente características, ¿cuales son ciertas en WebSockets?

Seleccione una o más de una:

a. Se inicializan mediante un mensaje HTTP de tipo “upgrade request”
b. Utiliza en general el puerto 80 o 443
c. Es compatible con todos los navegadores
d. El contenido de los mensajes es JSON en lugar de XML
e. La mensajería es bidireccional

A

a. Se inicializan mediante un mensaje HTTP de tipo “upgrade request”
e. La mensajería es bidireccional

37
Q

Siempre es posible utilizar conflation para adaptarnos a la velocidad del cliente mediante la agrupación de información.

Seleccione una:
Verdadero
Falso

A

Falso

38
Q

Spring Web Sockets es una solución de última milla Open Source basada en librerías Java, pero que únicamente ofrece librerías Javascript para el acceso de los clientes.

Seleccione una:
Verdadero
Falso

A

Verdadero

39
Q

Las soluciones de última milla siempre utilizan un “balanceador” entre los clientes y los servidores para lograr alta disponibilidad y balanceo de carga.

Seleccione una:
Verdadero
Falso

A

Falso

40
Q

Por cada petición utilizando long polling, únicamente puedo incluir una llamada de cliente y una respuesta o evento del servidor por cada sesión.

Seleccione una:
Verdadero
Falso

A

Falso

41
Q

La mensajería de última milla se puede utilizar para conectar clientes…

Seleccione una o más de una:

a. Externos a nuestra organización a través de internet
b. Internos a nuestra organización
c. Clientes web

A

a. Externos a nuestra organización a través de internet
b. Internos a nuestra organización
c. Clientes web

42
Q

De las siguientes características, ¿cuales deberían soportar los protocolos de mensajería utilizados en última milla?

Seleccione una o más de una:

a. Soporte para múltiples tipos de cliente (web, móvil, pc, etc)
b. Gestión de distintos anchos de banda por cliente
c. Mensajería bidireccional
d. Jitter sostenido para todos los clientes
e. Estandarización de mensajes y códigos de error

A

a. Soporte para múltiples tipos de cliente (web, móvil, pc, etc)
b. Gestión de distintos anchos de banda por cliente
c. Mensajería bidireccional
e. Estandarización de mensajes y códigos de error

43
Q

El contenido de los mensajes en WebSockets está basado en HTTP

Seleccione una:
Verdadero
Falso

A

Falso

44
Q

Los mecanismos de “conflation” me permiten adaptar el flujo a clientes lentos y rápidos mediante la agrupación de múltiples cambios en un único mensaje.

Seleccione una:
Verdadero
Falso

A

Verdadero

45
Q

Long Polling es una forma de utilizar REST para conseguir procesar eventos asíncronos del servidor al cliente mediante el mantenimiento de sesiones de clientes incrementando el timeout de la petición.

Seleccione una:
Verdadero
Falso

A

Verdadero

46
Q

De las siguientes características, ¿cuales son propias del sistema de mensajería de última milla Diffusion Push?

Seleccione una o más de una:

a. Permite hacer de puente con sistemas de mensajería JMS
b. Soporta conflation individualizado por cliente
c. Ofrece una API para poder implementar nuestro propio mecanismo de seguridad
d. No tiene mecanismos de clustering
e. Permite aplicar filtros sobre los mensajes a nivel de servidor
f. Los mensajes deben ser JSON
g. Ofrece monitorización centralizada

A

a. Permite hacer de puente con sistemas de mensajería JMS
b. Soporta conflation individualizado por cliente
c. Ofrece una API para poder implementar nuestro propio mecanismo de seguridad
e. Permite aplicar filtros sobre los mensajes a nivel de servidor
f. Los mensajes deben ser JSON

47
Q

De las siguiente, ¿cuales son características de los servicios REST?

Seleccione una o más de una:

a. El contenido únicamente puede ser JSON o XML
b. Funciona únicamente en clientes Web
c. Utilizan sesiones TCP de corta duración
d. Es un protocolo cerrado
e. Cada petición en general crea su propia sesión TCP

A

¿Por qué debemos securizar las conexiones en sistemas de mensajería de última milla?

Seleccione una o más de una:

a. No tenemos control sobre el software con el que se conectan los clientes
b. Hay riesgo de ataques de suplantación de identidad
c. No tenemos control sobre la red desde la que conectan los clientes

48
Q

Las soluciones de última milla ofrecen diferentes librerías para los clientes en función del tipo de conexión (REST, TCP, Long polling, WebSocket) que vayan a utilizar.

Seleccione una:
Verdadero
Falso

A

Falso

49
Q

Los sistemas de mensajería de última milla únicamente soportan clientes Web mediante librerías Javascript

Seleccione una:
Verdadero
Falso

A

Falso

50
Q

Los sistemas de mensajería de baja latencia también pueden ser utilizados para conectar clientes externos a través de internet.

Seleccione una:
Verdadero
Falso

A

Falso

51
Q

HTTP esta basado en UDP y es uno de los protocolos báse sobre los que se asientan muchos de los sistemas de mensajería de última milla.

Seleccione una:
Verdadero
Falso

A

Falso

52
Q

¿En que tipo de formato podemos encontrar las soluciones de mensajería de última milla?

Seleccione una o más de una:

a. Librerías de programación puras para integrar con nuestra aplicación
b. Servidores software que podemos arrancar de forma independiente
c. Servidores basados en hardware especializado

A

a. Librerías de programación puras para integrar con nuestra aplicación
b. Servidores software que podemos arrancar de forma independiente
c. Servidores basados en hardware especializado