Sistemas Distribuidos: Ejercicio de los temas arquitectura y comunicación en los sistemas distribuidos

Febrero del 2017.

Grupo de mañana.

La empresa miCaja ofrece un servicio bancario que permite a sus clientes gestionar sus cuentas por Internet, exceptuando ciertas operaciones (como la creación de una nueva cuenta) que deben hacerse de forma presencial. Como en cualquier banco, un cliente puede ser titular de varias cuentas y una misma cuenta puede tener múltiples titulares. Dentro de la organización, existen empleados que desempeñan el rol de gestores, realizando ofertas ventajosas a los titulares de cuentas (por ejemplo, un regalo, por su fidelidad, a los titulares de una cuenta que lleva abierta 50 años). Cada gestor dispone de una aplicación G que le permite (OP1) realizar una oferta introduciendo el código de la cuenta a la que va destinada y el mensaje asociado a la misma. Los clientes usan una aplicación C que les ofrece, entre otras, las siguientes operaciones: (OP2) login, que permite al cliente iniciar una sesión; (OP3) consulta, que, durante una sesión, deja al cliente conocer el saldo de una de sus cuentas; (OP4) transferencia, que permite que un cliente, durante una sesión, pueda realizar una transferencia de dinero desde una de sus cuentas hasta otra cuenta (que puede ser o no suya y que, incluso, puede corresponder a otra entidad bancaria); (OP5) logout, que termina una sesión. Mientras esté en una sesión, el cliente será notificado de todas las ofertas que se vayan emitiendo en las que esté involucrado, así como de los cambios en el saldo de cualquiera de sus cuentas. Se usa una arquitectura editor/subscriptor para la gestión de las notificaciones y una solución cliente/servidor para el resto de la funcionalidad. Por motivos de seguridad, se almacenan 3 copias independientes de los datos de cada cuenta bancaria. Cualquier operación que modifique la información asociada a una cuenta (por ejemplo, el saldo) no se completará hasta que estén actualizadas las tres copias. Por otro lado, si momentáneamente se deja de tener acceso a una de las copias de una cuenta, por seguridad, no se permite ninguna operación sobre la misma. Por último, dado que puede haber problemas de concurrencia al actualizar el saldo de una cuenta debido a la existencia de múltiples titulares, se usa un servicio remoto de cerrojos (SC) para solventarlos, estando replicado dicho servicio para aumentar la fiabilidad del sistema.
  1. ¿Qué módulos realizan el papel de subscriptores?
    1. Sólo C
    2. Sólo G
    3. C y G
    4. C y SC
Explicación
El módulo C realiza el rol de subscriptor puesto que está interesado en ser notificado de las ofertas que realizan los gestores a cualquiera de las cuentas de las que es titular el cliente, así como de los cambios en el saldo de dichas cuentas.
  1. ¿Qué módulos realizan el papel de editores?
    1. C y G
    2. Sólo G
    3. Sólo C
    4. C y SC
Explicación
El módulo G desempeña el papel de editor puesto que cada vez que un gestor realiza una oferta a una cuenta deben ser informados todos los titulares de la misma. Por su parte, el módulo C también tiene asociado ese rol ya que cada vez que un cliente realiza una transferencia en la que está involucrada una de sus cuentas, todos los titulares de esa cuenta son notificados del cambio de saldo correspondiente.
  1. ¿Cuántos temas existen en el esquema editor/subscriptor?
    1. Uno por cada cuenta
    2. Uno por cada cliente
    3. Uno por cada gestor
    4. Uno por cada operación
Explicación
Tanto los mensajes de oferta como las operaciones que conllevan un cambio de saldo están vinculadas a una determinada cuenta y, por tanto, ese elemento es el que representa a un tema en el esquema editor/subscriptor planteado.
  1. Suponga que en un momento dado hay sesiones de X clientes tal que cada uno de ellos es titular de Y cuentas. ¿Cuántas subscripciones existen en el sistema?
    1. X * Y
    2. Y
    3. X
    4. X + Y
Explicación
Durante una sesión el cliente tiene que estar subscrito a todas sus cuentas para poder recibir las notificaciones, tanto de ofertas como de cambios de saldo, asociadas a las mismas. Por tanto, habrá en total X * Y subscripciones.
  1. ¿Qué acción editor/subscriptor implica OP1?
    1. publicación
    2. baja
    3. subscripción
    4. ninguna
Explicación
Un mensaje de oferta de un gestor dirigido a una determinada cuenta se corresponde con una publicación en un esquema editor/subscriptor.
  1. ¿Qué acción editor/subscriptor implica OP2?
    1. subscripción
    2. baja
    3. publicación
    4. ninguna
Explicación
Cuando un cliente inicia una sesión, el módulo C debe subscribirse a todas las cuentas de las que es titular dicho cliente.
  1. ¿Qué acción editor/subscriptor implica OP3?
    1. ninguna
    2. baja
    3. publicación
    4. subscripción
Explicación
La consulta es una operación cliente/servidor y, puesto que no modifica el saldo de la cuenta, no implica ninguna acción en el esquema editor/subscriptor.
  1. ¿Qué acción editor/subscriptor implica OP4?
    1. publicación
    2. baja
    3. subscripción
    4. ninguna
Explicación
La operación de transferencia entre cuentas implica la modificación de los saldos de las cuentas involucradas, provocando, por tanto, una acción de publicación por cada una de ellas (en el caso de la cuenta destino, sólo se producirá una publicación si pertenece a esta entidad bancaria) que será notificada a sus titulares.
  1. ¿Qué acción editor/subscriptor implica OP5?
    1. baja
    2. subscripción
    3. publicación
    4. ninguna
Explicación
Cuando un cliente finaliza una sesión, se eliminarán las subscripciones a sus cuentas.
  1. ¿De qué tipo de sistema se trata según el teorema CAP?
    1. CP
    2. AP
    3. CA
    4. CAP
Explicación
Dado que cuando se pierde la accesibilidad a todas las copias de los datos de una cuenta por problemas de conectividad (P) no se llevan a cabo operaciones sobre esa cuenta, se está prefiriendo la consistencia (C) sobre la disponibilidad (A).
  1. ¿De qué tipo de sistema se trata según el teorema PACELC?
    1. PCEC
    2. PAEC
    3. PAEL
    4. PCEL
Explicación
Por un lado, cuando hay problemas de conectividad, se prefiere tener consistencia frente a disponibilidad (PC). Por otro lado, cuando el sistema tiene un funcionamiento normal, se opta por la consistencia frente a la latencia (EC) ya que la operación de escritura no se completa hasta que todas las copias estén actualizadas, lo que resulta en una operación más lenta pero que evita que puedan leerse datos obsoletos.
  1. ¿Son idempotentes OP3 y OP4?
    1. Sólo OP3
    2. Sólo OP4
    3. Ambas
    4. Ninguna
Explicación
La operación de consulta de saldo (OP3) es idempotente: el resultado de una operación es el mismo aunque ésta se repita de forma inadvertida. Sin embargo, la operación de transferencia no lo es, puesto que si se volviera a ejecutar inadvertidamente, se aplicaría nuevamente el reajuste de saldos en las cuentas involucradas.
  1. ¿Qué módulo debería enviar los mensajes de renovación del lease, y a qué otro módulo, si se aplica un esquema de leasing al servicio de cerrojos?
    1. De C a SC
    2. De SC a C
    3. De G a SC
    4. De SC a G
Explicación
Para evitar que un cerrojo pueda quedar indefinidamente cerrado en caso de que el proceso que lo posee se caiga, se puede aplicar la técnica del leasing, haciendo que el proceso cliente (C) que lo posee solicite periódicamente al servidor de cerrojos (SC) la renovación del lease.
  1. ¿Qué esquema de replicación de servicio sería más adecuado si se pretende reducir el tiempo de recuperación del servicio de cerrojos?
    1. Activa
    2. hot standby
    3. warm standby
    4. cold standby
Explicación
Con el esquema activo de replicación de servicios, todos los servidores que toman parte del servicio replicado procesan las peticiones de los clientes, por lo que si uno de ellos se cae, la recuperación es instantánea.
  1. Se plantea usar un esquema con un filtro de eventos por contenido en vez de un filtro por temas. ¿Para cuál de estos casos ese cambio sería más ventajoso en el sentido de reducir el número de mensajes recibidos pero no deseados?
    1. Interés en conocer todas las ofertas que realiza un determinado gestor.
    2. Interés en conocer todas las ofertas que se producen en el sistema.
    3. Interés en conocer qué cambios de saldo se producen en un determinado conjunto de cuentas.
    4. Interés en conocer qué ofertas recibe un determinado conjunto de cuentas.
Explicación
Veamos cada caso planteado analizando en cuál el uso de un filtro por contenido sería más efectivo (es decir, descartaría más eventos no deseados).

Las siguientes preguntas corresponden al tema de comunicación y, por tanto, no entran en este curso

  1. Considere una función que recibe cuatro parámetros que representan la dirección de comienzo de dos buffers, así como sus tamaños respectivos, y que debe enviarlos por un socket. ¿Cuál de los siguientes servicios del S.O. puede optimizar la transmisión?
    1. writev
    2. mmap
    3. sendfile
    4. send
Explicación
La meta a lograr en un escenario como el planteado sería poder enviar los dos buffers con una única llamada y sin realizar ningún tipo de copia a buffers intermedios. Los servicios mmap y sendfile están orientados a optimizar el acceso a los ficheros pero en este caso no hay ninguno involucrado. En cuanto a la llamada send, si se usa para la transmisión planteada o bien habría que utilizarla dos veces o bien previamente habría que copiar ambos buffers en uno intermedio. El servicio writev permite con una sola invocación enviar ambos buffers sin realizar copias intermedias.
  1. Suponga que un proceso tiene que enviar dos mensajes y para ello realiza la siguiente secuencia: define una variable; rellena la variable con el contenido del primer mensaje; lo envía; rellena la misma variable con el contenido del segundo; lo envía. ¿Para qué tipo de envío esta solución no es adecuada?
    1. Envío con retorno inmediato.
    2. Envío con retorno después de copia local.
    3. Envío con retorno cuando ha llegado el mensaje al nodo remoto.
    4. Envío con retorno cuando el proceso remoto ha recibido el mensaje.
Explicación
En el escenario planteado puede haber problemas si la primera llamada de envío no asegura que el buffer pasado como parámetro puede reutilizarse inmediatamente al completarse la llamada. El envío con retorno inmediato no lo asegura por lo que no es adecuado para el escenario propuesto.
  1. Suponga un sistema de comunicación en grupo causal con 4 procesos (de P1 a P4) donde P3 recibe un mensaje de P4 con un vector (3,3,3,3). ¿Cuál de los siguientes vectores que corresponden al proceso receptor P3 es correcto (algunos tienen valores no factibles) y permite la entrega inmediata del mensaje?
    1. (4,4,6,2)
    2. (4,4,6,4)
    3. (4,4,2,2)
    4. (2,4,6,2)
Explicación
  1. ¿Cuántos de los siguientes esquemas de serialización representan como texto un número entero: XDR, JSON, Protocol Buffers y Java Serialization?
    1. 1
    2. 2
    3. 3
    4. 4
Explicación
Todos los esquemas planteados serializan la información en binario con la excepción de JSON, que usa un formato de texto.
  1. ¿Cuáles de los siguientes mecanismos de comunicación proporcionan desacoplamiento espacial: MPI y Jgroups?
    1. Jgroups
    2. MPI
    3. Ambos
    4. Ninguno
Explicación
MPI requiere especificar el número del proceso destinatario del mensaje, por lo que no ofrece desacoplamiento espacial. Sin embargo, en Jgroups un mensaje se envía a una dirección de grupo, sin conocer qué miembros están asociados al mismo, proporcionando, por tanto, desacoplamiento espacial.