Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pedro Valero
Vctor de Juan
Eduardo Miravalls
UAM - Curso 2014 - 2015 C2
14 de junio de 2016 13:23
Apuntes UAM
Doble Grado Mat.Inf.
Cdigo en Github
Sistemas Informticos II
ndice general
I
Middleware
I.1 Network Operating System (NOS) . . . . . . . . .
I.2 Servicios de transporte . . . . . . . . . . . . . . . .
I.2.1 API directa . . . . . . . . . . . . . . . . . . .
I.2.2 Sockets . . . . . . . . . . . . . . . . . . . . .
I.3 Modelos de servicios distribuidos . . . . . . . . . .
I.3.1 RPC - Remote Procedure Calls . . . . . . .
I.3.2 Web Services (SOAP-WSDL-UDDI) . . . .
I.3.3 REST . . . . . . . . . . . . . . . . . . . . . .
I.3.4 Comuncacin mediante colas de mensajes
I.4 Services Oriented Architecture SOA . . . . . . . .
I.4.1 ESB - Enterprise Services Bus . . . . . . . .
I.4.2 RMI - Remote Method Invocation . . . . .
I.4.3 Java RMI . . . . . . . . . . . . . . . . . . . .
I.5 Servicios de directorio global . . . . . . . . . . . .
I.5.1 Namespaces . . . . . . . . . . . . . . . . . .
I.5.2 Servicios de tiempo . . . . . . . . . . . . . .
I.5.3 Seguridad . . . . . . . . . . . . . . . . . . .
I.6 Problemas . . . . . . . . . . . . . . . . . . . . . . .
II Colas
II.1 Teora . . . . . . . . . . . . . . . . . . .
II.1.1 Distribuciones no Poissonianas
II.1.2 Redes de colas . . . . . . . . . .
II.2 Problemas . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
4
6
6
9
12
14
16
16
17
20
21
21
23
25
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
45
45
46
47
47
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
79
79
81
81
82
83
84
84
85
86
86
88
88
88
1 de 112
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
89
91
93
95
97
98
99
111
Sistemas Informticos II
Captulo I
Middleware
Para este tema es importante tener claros varios conceptos que vamos a ir definiendo y
explicando poco a poco.
Middleware
I.1.
Network
Operating
System
Definicin I.2 Network Operating System. Es una extensin del sistema operativo que
proporciona transparencia al cliente, para que ste realice las llamadas como si fueran locales.
RM-ODP
Algunas de las maneras de proporcionar transparencia del NOS segn RM-ODP (Open
Distributed Processing Reference Model) son
Ubicacin: Ocultar dnde reside cada recurso (y permite que ste se mueva,
incluso mientras est siendo utilizado).
Persistencia: Ocultar tanto la activacin y desactivacin de objetos como sus fallos
y recuperaciones mediante la replicacin.
Concurrencia: Ocultar la utilizacin de recursos concurrentes.
Otras caractersticas deseables para un NOS seran
Prestaciones: Escalar el tamao y reconfigurar el sistema para mejorar sus
prestaciones segn vara la carga de trabajo.
Espacio de nombres:
3 de 112
I.2.
Servicios de transporte
Una vez hablado del NOS, vamos a ver unos conceptos de servicios de transporte del
middleware.
Lo primero es recordar que hay 2 modelos de interaccin, sncrono o asncrono.
Adems de estos modelos, las interacciones pueden ser de tres tipos.
R: Peticin. (El cliente hace una peticin sin esperar respuesta, por ejemplo para
cerrar la conexin)
RR: Peticin Respuesta.
RRA: Peticin Respuesta ACK.
I.2.1.
APIs directas
API directa
Definicin I.3 APIs directas. API viene de Application Programming Interface (Interfaz de
programacin de aplicaciones).
La utilizacin de APIs directas es la utilizacin de una interfaz de programacin para acceder a
unos servicios (proporcionados por la aplicacin).
Habitualmente son servicios de nivel de transporte o sesin. La ubicacin de extremos
no es transparente para el programa, ya que necesitas saber dnde est la interfaz para
poder utilizarla. Para ver un ejemplo de API, consultar: API de OneDrive.
I.2.2.
Sockets
I.3.
La base de este curso es cmo dar servicio a muchos clientes. Si tenemos una web a la
que se conectan 10 personas, nos vale con cualquier ordenador, pero Cunta gente usa
google? Ni de coa google tiene un nico servidor haciendo todo, tiene que tener los
servicios distribuidos. A lo largo de esta seccin iremos viendo muchas de las maneras
de llevar esto a cabo.
I.3.1.
Stub
Problemas de RPC
No existe el paso de parmetros por referencia.
Hay que conocer de antemano dnde est el servidor exctamente y en qu puerto
escucha.
Para saber el puerto en el que el servidor est escuchando, ste tiene que
registrarse en un PortMapper al que el cliente pregunta por el puerto.
PortMapper
Operaciones
de
RPC
idempotentes
Por ejemplo un clculo 4 + 4 lo puedes ejecutar todas las veces que quieras, pero un insert en una base
de datos no
Sun RPC
SUN RPC: Una de las implementaciones ms comunes de RPC es Sun RPC. Vamos
a estudiarla un poco ms en detalle.
Tiene 3 componentes:
XDR
XDR Lenguaje de definicin de tipos de datos. Tiene una sintaxis similar a C, pero
es slo de definicin de datos, no de programacin
Especificacin de RPC: Genera los stubs y el fichero de interfaz (para ser incluido
al programar)
Librera de implementacin
Slo por si interesa, incluimos un esquema de cmo funciona y qu ficheros se generan
en la codificacin de un servicio utilizando RPC.
NDR
NIDL
I.3.2.
OASIS
WSRL
SOAP
SOAP
Definicin I.4 SOAP. (siglas de Simple Object Access Protocol) Es un protocolo estndar que
define cmo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de
datos XML.
Es independiente de la plataforma y el lenguaje de programacin y, aunque se puede usar en
distintos sistemas de mensajes y sobre distintos protocolos de transporte, su uso principal es
transportar RPCs sobre HTTP.
Un mensaje SOAP es un documento XML ordinario con una estructura definida en la
especificacin del protocolo. Dicha estructura la conforman las siguientes partes:
Envelope (obligatoria): Raz que da la estructura, es la parte que identifica al
mensaje SOAP como tal.
Header: Esta parte es un mecanismo de extensin ya que permite enviar
informacin relativa a cmo debe ser procesado el mensaje. Es una herramienta
para que los mensajes puedan ser enviados de la forma ms conveniente para las
aplicaciones. El elemento "Header" se compone a su vez de "Header Blocks" que
delimitan las unidades de informacin necesarias para el header.
10
I.3.2.2.
WSDL
WSDL
Definicin I.5 WSDL. WSDL son las siglas de Web Services Description Language, un formato
XML que se utiliza para describir servicios Web.
WSDL describe la interfaz pblica de los servicios Web. Est basado en XML y describe la forma
de comunicacin, es decir, los requisitos del protocolo y los formatos de los mensajes necesarios
para interactuar con los servicios listados en su catlogo. Las operaciones y mensajes que soporta
se describen en abstracto y se ligan despus al protocolo concreto de red y al formato del mensaje
I.3.2.3.
UDDI
UDDI
Definicin I.6 UDDI. UDDI son las siglas del catlogo de negocios de Internet denominado
Universal Description, Discovery and Integration. El registro en el catlogo se hace en XML.
UDDI es una iniciativa industrial abierta (sufragada por la OASIS) entroncada en el contexto
de los servicios Web.
Consta de 3 partes: modelo de datos (esquema XML), la API (RPCs con SOAP para
registrar y buscar servicios) y los Cloud Services (los servidores que proporcionan el
servicio).
El registro de un negocio en UDDI distingue tres categoras de datos:
11
I.3.3.
REST
REST
12
Es posible disear sistemas de servicios web de acuerdo con el estilo arquitectural REST de
Fielding y tambin es posible disear interfaces XMLHTTP de acuerdo con el estilo de llamada
a procedimiento remoto (RPC), pero sin usar SOAP.
Estos dos usos diferentes del trmino REST causan cierta confusin en las discusiones tcnicas,
aunque RPC no es un ejemplo de REST.
URI
WADL
13
I.3.4.
MOM
Situaciones ideales
Conexiones no permanentes y costosas.
Mltiples servidores procesando mensajes de clientes.
Llegada de mensajes impredecibles o en rfagas
Sistemas de tipo publicacin/suscripcin.
I.3.4.1.
14
15
I.4.
I.4.1.
Ventajas:
Adaptacin rpida en entornos existentes.
Flexibilidad. Fcil de adaptar a nuevos requerimientos.
16
Basado en estndares.
Existencia de tipos de servicios y APIs predefinidas y listas para su uso.
Convierte tareas de programacin en configuracin (manipulacin de datos, por
ejemplo).
Facilita la gestionabilidad del sistema, al proporcionar un punto nico de control
para todos los intercambios.
Inconvenientes:
Posible punto nico de fallo.
Fcil saturacin del ESB a cargas altas de comunicacin.
Sin una planificacin correcta de APIs y conectores no evita la conexin lgica
punto a punto entre clientes y servidores, slo la fsica.
Requiere ms sistemas en ejecucin, para soportar el propio ESB.
Introduccin de un elemento adicional en la cadena de procesamiento, con lo cual
el rendimiento se puede ver afectado.
Escasas ventajas para entornos sencillos. Estas se ven ms en situaciones
complejas, con muchos tipos de clientes y servidores.
I.4.2.
Aparte del RMI de Java, existen otras alternativas, como CORBA (Common Object
Request Broker Architecture) creada por OMG (Object Management Group) y DCOM
(Distributed Component Object Model) creada por Microsoft.
I.4.2.1.
OMA
OMA
ORB
Definicin I.10 ORB. Object Request Broker Bus de comunicacin entre objetos.
18
IDL
IDL
I.4.2.2.
Microsoft
COM
Microsoft COM
Definicin I.12 Microsoft COM. Microsoft Component Object Model - Plataforma de objetos
3
19
de microsoft.
DDE
OLE
DCOM
MTS
MSMQ
MIDL
DCE
Funcionalidades
Transparencia de la localizacin de los objetos.
SCM
Activacin de los objetos a distancia (a travs del SCM (Service Control Manager)
NTLMP
SAM
I.4.3.
Java RMI
Vamos a ver ahora cmo implementa Java la idea de Remote Method Invocation.
Existe desde Java 1.1 y es ms sencillo que CORBA. La arquitectura est basada en 3
niveles: Proxy, Referencia Remota (gestiona las referencias remotas) y Transporte (JRMP
- Java remote Method Protocol). Sobre estas 3 capas se construye el cliente y el servidor.
Cabe mencionar que el proxy del servidor se denomina esqueleto.
4
20
Paso de parmetros
Todos los parmetros son de entrada salvo el retorno del mtodo.
Admite objetos remotos como parmetros (que obviamente se pasan por
referencia)
Admite objetos locales como parmetros slo si son serializables (que se pasan
por valor)
I.5.
I.5.1.
Namespaces
Namespaces
21
Los nombres deben ser nicos (normalmente asignados por una autoridad dentro del
dominio) y no deben contener informacin de la localizacin fsca, as se garantiza
mejor la transparencia a la ubicacin.
Este es un ejemplo de un espacio de nombres jerrquico
X.500
Estndar X.500
estndar
XDS
DUA
DAP
DSA
DSP
22
Los clientes contienen el DUA y se comunicacn con los servidores utilizando DAP.
Los servidores contienen el DSA y se comunican entre servicores utilizando DSP.
Al directorio en s se accede con las APIs de XDS.
Existe una alternativa al DAP que es el LDAP (Lightweigth Directory Access Protocol).
Este protocolo no requiere espefcicamente de un directorio X.500, puede utilizarse con
Microsoft Active Directory.
Esto es un protocolo de comunicaciones, no es una especificacin de directorio ni una
API de programacin. No confundirse.
I.5.2.
Servicios de tiempo
Es bsico y fundamental que cuando tenemos un sistema distribuido todos los relojes
estn perfectamente sincronizados. Para ello existen los servicios de tiempo que vamos
a estudiar a continuacin.
Sincronizar 2 personas sus relojes es fcil, porque los 2 ven en el mismo instante de
tiempo los 2 relojes. 2 ordenadores separados no pueden ver los relojes a la vez, ya
que el mensaje con la hora que tiene cada uno tarda en llegar, es por ello que cada
ordenador mantiene un componente de inexactitud y que es necesario sincronizar
peridicamente cuando ese componente de inexactitud supere un umbral definido7
Mantener sincronizado el tiempo es imporescindible para la consistencia y para la
seguridad.
Timer ticks
UTC
Para lograr esta sincronizacin existen proveedores de tiempo (timer ticks) que
pueden sincronizar por radio y actualizar el reloj del administrador de nuestro sistema
distribuido. Podemos conectar ms de un servidor a estos proveedores.
Una vez tenemos definidos los servidores de nuestro servicio con la hora buena
(sincronizados con los timer ticks) el resto de nuestros servidores realizan consultas
para sincronizar sus relojes. El formato utilizado es UTC (Universal Time Coordinated)
que cuenta desde el principio del calendario gregoriano.
7
Tal vez nos podemos permitir 0.01 segundos de desincronizacin, pero no podemos permitirnos 0.05
23
I.5.2.1.
NTP
NTP
Nuestro objetivo es calcular o, que es la diferencia de tiempos entre ambos relojes. Observando
el esquema, podemos deducir las ecuaciones:
Ti3 + o + t = Ti2
(I.1)
(I.2)
Ti + o = Ti1 + t
As, tenemos o escrito como la suma de un valor conocido ms una desviacin. Puesto que todos
los tiempos son positivos, tenemos que t + t0 > t0 t por lo que podemos acotar o mediante:
d
z }|i {
z }|i {
0
t +t
t0 + t
oi
o oi +
2
2
24
Tolerancia
mnima de
reloj
Parece que a la diferencia t 2+t se le llama tolerancia mnima de reloj. Esta tolerancia se obtiene
restando las 2 ecuaciones iniciales.
I.5.3.
Seguridad
25
I.6.
Problemas
Ejercicio 1.1: Disear, a nivel de bloques, un sistema por el cual un middleware pudiera
soportar redundancia en un servidor de archivos planos (tipo disco compartido) de modo
transparente a la aplicacin y los servidores que intervienen en la conexin.
Ejercicio 1.2: Uno de los principales problemas que tiene que tratar cualquier middleware
que comunique ordenadores de distinto tipo es la transparencia del formato de representacin
interno de los datos en cada componente de la red. Estudiar las ventajas e incovenientes de
cada una de estas tres posibles alternativas en distintas situaciones de sistemas distribuidos:
Convertir todos los datos al formato interno de uno de los componentes de la red.
Convertir todos los datos a un formato intermedio de intercambio.
No realizar ninguna conversin en el Middleware, y dejar que cada aplicacin realice
las conversiones que considere oportunas.
Ejercicio 1.3:
En un sistema de comunicaciones mediante RPCs, estudiar el lugar
adecuado para introducir la funcin de conversin del formato de representacin de los datos
descrita en el problema anterior. Nota: Basarse en la figura I.3.
26
Ejercicio 1.4:
Sugerir alguna alternativa al servicio portmapper empleado en la
comunicacin mediante RPCs para conocer la direccin (puerto) del servidor con el que se
desea comunicar, basado en alguno de los servicios que puede desempear un middleware.
Ejercicio 1.5: Un determinado sistema distribuido requiere que cada servidor autentique
la conexin de sus clientes mediante la introduccin de un identificador de usuario y una
contrasea. Supuesto que posee un middleware genrico, disear sobre l un servicio que
permita a las aplicaciones clientes realizar una validacin nica de usuario y contrasea,
independientemente del nmero de servicios que sea necesario utilizar.
27
Ejercicio 1.7:
Un sistema de control de inventario central recibe los movimientos de
mercanca que se realizan en su red de almacenes, y de ellos debe ser capaz en todo momento
de conocer la cantidad de cada producto que existe en toda la red. Proponer el mecanismo
de comunicaciones que se considere ms adecuado para realizar estos envos, considerando
distintos casos:
a) Todos los sistemas operan simultneamente, y disponen de enlaces de comunicaciones
dedicados.
b) Todos los sistemas operan simultneamente, pero los enlaces de que disponen son
conmutados.
c) Los sistemas tienen distinto horario de funcionamiento.
A PARTADO C )
Por definicin, parece que lo ptimo es el empleo de una cola de mensajes donde los
servidores informan de los cambios. Cuando un servidor arranque, antes de empezar a
trabajar, actualiza su informacin en base a los mensajes de la cola.
Ejercicio 1.8: Nombrar casos de comunicacin entre aplicaciones en los que sea preferible
emplear colas no persistentes en lugar de colas persistentes. Razonar la respuesta.
Ejercicio 1.9:
Enumerar las ventajas e inconvenientes que puede tener sustituir un
mecanismo de comunicacin entre procesos interno de un sistema operativo (eras de
memoria compartidas, archivos, named pipes, etc.) por colas locales de MQSeries para
comunicar dos aplicaciones en el mismo ordenador. Justificar brevemente cada una de ellas.
29
Ejercicio 1.10: Un sistema de directorio de nombres jerrquico consta de un nodo raz, que
denominaremos A, y tres nodos secundarios que dependen de l, que denominaremos B, C
y D, respectivamente. No existe replicacin de la informacin en ninguno de los servidores
de nombres de la estructura, de modo que cada servidor slo contiene la informacin de
las estaciones que dependen de l. Expresar el flujo de mensajes que debe tener lugar para
que una estacin del nodo B, que denominaremos B1, pueda recuperar la informacin de
directorio de una estacin dependiente del nodo C, denominada C1.
Ejercicio 1.11:
Determinar la tolerancia mnima de reloj que es necesario considerar
debido a la propagacin de la informacin por el medio fsico en un sistema que sincronice
desde un servidor de tiempo central los relojes de todas sus estaciones en los siguientes casos:
a) Entorno de red de rea local de un tamao mximo de 500 m.
b) Entorno de red de rea extendida, mxima distancia de 600 Km.
c) Entorno de red transocenica por cable coaxial, mxima distancia entre nodos de 10.000
Km.
d) Red VSAT (Very Small Aperture Terminal, red de comunicaciones va satlite) con nodo
de retransmisin en un satlite en la rbita geoestacionaria (36.000 Km. sobre el ecuador).
30
t=
500m
d
=
= 2.5 106 s
vp
2 108 m/s
A PARTADO B )
t=
600Km
d
=
= 3 103 s
vp
2 108 m/s
t=
d
106 m
=
= 5 102 s
vp
2 108 m/s
t=
d
36 106 m
= 1.8 101 s
=
vp
2 108
A PARTADO C )
A PARTADO D )
Ejercicio 1.12:
A efectos de asignacin de nombres a los distintos recursos que lo
componen, un determinado sistema distribuido se encuentra dividido en distintos dominios
administrativos, organizados de modo jerrquico segn al esquema:
31
Los nodos en cursiva representan ordenadores, y los nodos en negrita, los dominios.
Cada dominio tiene un servidor de nombres propio, que reside en un ordenador cuyo
nombre coincide con el del dominio, con capacidad de almacenamiento local de resultados
de consultas a otros dominios (cache). Inicialmente se supone que todas las caches de los
dominios se encuentran vacas.
a) Poner los nombres completos en el dominio global de cada uno de los ordenadores
representados en cursiva en la figura.
b) Detallar los mensajes que sern necesarios y entre qu sistemas deben circular para que el
ordenador atlas localice el servidor salarios en el directorio a partir de su nombre en la red.
c) Inmediatamente despus de la anterior consulta, el ordenador axis necesita establecer una
conexin con salarios. Indicar el flujo de mensajes que ocurrir para que pueda localizarlo
en el directorio.
d) Supuesto que el sistema de nombres que se emplea sigue el estndar X.500, nombrar:
Ordenadores que contendrn un Directory User Agent.
Ordenadores que contendrn un Directory System Agent.
Tres parejas de ordenadores entre las que se emplear un Directory Access Protocol.
Tres parejas de ordenadores entre las que se emplear un Directory System Protocol.
e) Proponer un sistema de comunicaciones (peer to peer orientado a conexin, no orientado
a conexin, Remote Procedure Calls, colas de mensajes) para producir los intercambios de
mensajes de resolucin de nombres en el directorio, y razonar la respuesta.
A PARTADO C )
Suponiendo que los servidores guardan en la cach informacin de las consultas
recientes, el servidor desarrollo ya tiene guardado en cach la direccin de salarios, por
lo que le responde directamente a axis
A PARTADO D )
Directory User Agent:
Los que estn en cursiva
Directory System Agent
Los que estn en negrita
Directory Acces Protocol
axis-atlas
atlas-hrcules
salarios-bigboss
Directory System Protocol
desarrollo-tcinico
empresa-gestin
administracin-direccin
A PARTADO E )
La cola de mensajes no tiene sentido pues necesitamos obtener respuestas en tiempo
real.
Peer to peer tampoco termina de encajar con la lgica del sistema, pues hay un claro
comportamiento jerrquico y cada host pregunta de forma nica a otro host y no
pregunta a un tercero hasta no obtener su respuesta.
El mtodo ms interesante sera RPC donde cada host establece comunicacin directa
con aquel con el que quiere comunicarse. Adems no tenemos que preocuparnos por la
representacin interna de los datos por lo que cada no podra estar programado en un
lenguaje completamente diferente.
A Dejuan no le gusta RPC porque no necesitamos ejecutar funciones que se encuentren
en otros servidores, simplemente queremos hacer una pequea consulta por lo que lo
que ms le convence es peer to peer (porque no slo hablas con el de arriba sino tambin
con los que puedan tener debajo) y como no son muy frecuentes las consultas (debido
a la cach) opina que lo ideal sera no orientado a conexin.
33
Ejercicio 1.13:
Se desea realizar un servidor para una red de rea local que acte
como punto focal de recepcin de alarmas que se produzcan en las estaciones de trabajo
ante situaciones de diversos tipos (conexin de estacin, fallos de programas, errores en
disco,introducciones de contraseas equivocadas, etc.).
a) Enumerar los mecanismos de comunicaciones que se pueden emplear para enlazar los
clientes con el servidor para realizar esta funcin u otras similares.
b) Valorar el empleo de cada uno de los mecanismos anteriores para realizar la aplicacin, y
elegir la que se considere ms apropiada a este caso, razonando la respuesta.
c) Si el prototipo de funcin que se desea utilizar en las estaciones clientes para enviar una
alerta es el siguiente:
long
char
char
char
long
);
alerta (
tipo_alerta,
// Tipo de alerta que se ha producido
nivel_gravedad,
// Nivel de gravedad de la misma
* datos_adicionales,// Texto informativo dado por el cliente
* codigo_accion
// Accin recomendada por el servidor
// para resolver la situacin.
Dejuan opina que no tiene mucho sentido utilizar un WS, ya que el servidor
no ofrece ningn servicio, simplemente tiene que ser informado. Es por ello
que aunque utilizramos REST tiene poco sentido. Incluso aunque REST es
muy til en este caso ya que es vlido para sistemas heterogneos. Adems, la
comunicacin sera muy sencilla basndonos en peticiones POST de HTTP. Esta
opcin si permitira comunicacin asncrona.
P2P
No encaja con la idea del trabajo a desarrollar puesto que tenemos una clara
jerarqua con un nico nodo con el que nos queremos comunicar. Adems fuerza
a que todas las estaciones de servicio acuerden un mismo lenguaje, pues no est
ideado para host heterogneos.
RPC
til para trabajar con host heterogneos pues el propio middleware se encargar
del marshalling y unmarshalling. Establece conexin directa entre los dos hosts
que se quieren comunicar.
Colas de mensajes
Independiente de la plataforma sobre la que se implemente cada estacin de
trabajo salvo por el formato de los mensajes, que se debe acordar previamente.
Permite la comunicacin asncrona, cosa que no permitan ninguna de las
anteriores opciones.
Puesto que queremos que cada estacin de servicio enve la alarma y siga trabajando
en detectar posibles fallos y, presumiblemente, habr diferentes categoras de alarmas,
lo ms interesante sera el empleo de colas de mensajes que ayudan a la organizacin
jerrquica de los errores y evitan la saturacin del ordenador central.
A PARTADO C )
Basta con que el mensaje tenga 2 campos, cada uno de los cuales se corresponde
a uno de los strings que forman parte de la alerta. El tipo del mensaje ser el tipo
de alerta y la prioridad ser el nivel de gravedad.
El marshalling ser el proceso de escribir el mensaje a partir de una variable de
tipo alerta.
El unmarshalling ser justo el proceso contrario, a partir de un mensaje se
construye una variable de tipo alerta.
Ejercicio 1.14:
a. Servidor de archivos Unix para una red de ordenadores personales en MS-DOS. Los
clientes deben ver el disco del servidor como si fuera un disco local.
35
b. Servidor de envo diferido de fax. El servidor del que se dispone permite a los clientes
conectados a l a travs de una red de comunicaciones enviar un fax desde su estacin,
compartiendo una nica lnea de telfono y aprovechando las horas de menor coste de
las llamadas telefnicas.
c. Servidor de emulacin de terminales. Permite a sistemas clientes ASCII acceder al
ordenador servidor, que trabaja con cdigo EBCDIC, como si se encontraran en una
pantalla local del mismo.
d. Servidor de validacin de contraseas para una red de ordenadores homognea.
Recibir un identificador de usuario y contrasea, debidamente cifrados, y contestar
al cliente nicamente si ambos son correctos, enviando un mensaje de reconocimiento.
Para cada uno de ellos se pide:
Elegir razonadamente el mecanismo de transporte (peer to peer orientado a conexin,
peer to peer no orientado a conexin, RPCs, colas de menajes) que sera aconsejable
utilizar para conectar a ellos los sistemas clientes.
Indicar, si es necesario, las funciones adicionales que habra que implementar sobre
el protocolo elegido para garantizar que el middleware resultante garantizara la
transparencia de acceso del sistema distribuido.
a. Puesto que los ordenadores sern heterogneos (ordenadores personales en MSDOS pero servidor de archivos UNIX) ser necesario un proceso de marshalling y
unmarshalling. Un nico fichero puede estar repartido entre mltiples servidores
pero los clientes no deben notarlo.
Adems necesitamos un acceso rpido y ligero, por lo que lo ms interesante sera
el uso de RPC.
b. Puesto que el envo del fax no se realizar en el instante exacto en que se
selecciona la opcin sino que se aprovecharn las horas de menor coste de las
llamadas telefnicas, lo ms apropiado sera el empleo de una cola de mensajes.
El cliente que quiera mandar un fax deja un mensaje en el servidor y este, cuando
la lnea est desocupada, tomara un mensaje de la cola y enviar el fax pedido.
c. Es necesaria comunicacin fiable sin prdida de paquetes o los comandos que se
ejecuten podran llegar incompletos dando lugar a resultados inesperados. Por
tratarse de sistemas heterogneos (unos emplean ASCII y otros EBCDIC) sera
recomendable el uso de RPC que se encarga del unmarshalling y marshalling de
manera transparente a los usuarios.
La solucin de la profesora dice que no merece la pena el RPC puesto que la
funcionalidad de traduccin necesaria es muy sencilla. Por tanto emplean P2P
orientada a conexin
d. Los dos sistemas tienen que estar conectados a la vez. La red es homognea,
luego no es necesario traduccin de datos para garantizar transparencia de acceso.
Puesto que la funcionaldiad es muy elemental no merece la pena RPC.
36
Slo tenemos un mensaje y una respuesta por lo que no merece la pena crear una
conexin y las llamadas son sncronas.
La solucin ms apropiada es comunicacin P2P no orientada a conexin.
Ejercicio 1.16: (Coulouris 10.7) Un servidor B de NTP recibe un mensaje del servidor
A a las 16:34:23.480 llevando una marca de tiempo 16:34:13:430 y lo responde. A recibe
el mensaje a las 16:34:15.725, llevando una marca de tiempo 16:34:25.7 de B. Estimar la
deriva entre B y A y la precisin de la estimacin.
37
Ti3 = 430
(I.4)
Ti2 = 10050
(I.5)
Ti1 = 12270
(I.6)
Ti = 2995
(I.7)
donde los tiempos los hemos tomado midiendo desde las 16:34:13, para hacer los
nmeros ms pequeos y manejables (trabajando en milisegundos). Hay una pequea
errata: Ti2 = 10480 porque medimos desde 16:34:13 y para que fuera 10050 tendramos
que estar midiendo desde 16:34:13:430
Nuestro objetivo es calcular o, que es la diferencia de tiempos entre ambos relojes.
Observando el esquema, podemos deducir las ecuaciones:
Ti3 + o + t = Ti2
(I.8)
(I.9)
Ti + o = Ti1 + t
As, tenemos o escrito como la suma de un valor conocido ms una desviacin. Puesto
que todos los tiempos son positivos, tenemos que t + t0 > t0 t por lo que podemos
acotar o mediante:
d
d
z }|i {
z }|i {
0
0
t +t
t +t
oi
o oi +
2
2
As, podemos decir que la deriva es: oi = 9447.5ms con una precisin de 172.5ms9
9
38
Ejercicio 1.18:
Los servidores de un sistema distribuido pueden ser de dos tipos: sin
estado (stateless), es decir, que no recuerdan la historia de peticiones anteriores realizadas
por el cliente; o con estado (statefull), en caso contrario. Identificar el tipo de protocolo de
transporte ms adecuado (orientado o no orientado a conexin) para realizar los accesos a
cada uno de estos tipos de servidores.
Para los servidores statefull, por su facilidad para identificar mensajes consecutivos
de un mismo cliente, son ms apropiados los protocolos orientados a conexin. Si se
usasen protocolos no orientados a conexin habra que incluir un campo adicional en
cada mensaje para asociarlos a un mismo cliente.
No obstante, existen algunas excepciones, como DHCP que utiliza UDP pero guarda
un estado asociado a cada cliente (qu direccin IP tiene asignada)
Los servidores stateless no guardan informacin alguna asociada a cada cliente.
Generalmente son del tipo peticin respuesta donde no se guarda informacin asociada
a cada cliente ni importa el orden de los mensajes enviados.
Un ejemplo son los servidores DNS, servidores web o NTP. Un cliente solicita una
pagina web, sin importar qu pginas web ha solicitado anteriormente. Ya que no hace
falta identificar mensajes consecutivos de un mismo cliente son ms apropiados los
protocolos no orientados a conexin como UDP pues tienen menos sobrecarga.
Como en todo dentro de la informtica existen expeciciones como son los servidores
web o los servidores web que utilizan TCP, probablemente debido a la limitacin en el
tamao del mensaje en UDP.
Ejercicio 1.19: Un servicio de autenticacin en una red de rea local funciona mediante un
mecanismo de comunicacin basado en Remote Procedure Calls, RPCs genricas. Dispone
de las siguientes funciones:
Autenticacin de usuario: Recibe como parmetros un identificador de usuario y su
contrasea, y devuelve un cdigo de retorno 0 si usuario y contrasea son correctos,
y -1 en caso contrario.
40
Olakase
Ejercicio 1.20:
Los ordenadores de una empresa estn conectados siguiendo el
modelo cliente servidor, de acuerdo con la siguiente organizacin jerrquica de dominios
administrativos:
Las hojas del rbol representan ordenadores, los restantes nodos dominios. Cada dominio
tiene un servidor de nombres que reside en un ordenador, cuyo nombre coincide con el del
dominio, con capacidad de almacenamiento local de resultados de consultas a otros dominios
(cache). Se supone que al principio las caches estn todas vacas.
41
a) Escribir los nombres completos en el dominio global de todos los ordenadores situados en
las hojas del rbol.
b) Detallar los mensajes necesarios para que el ordenador jupiter localice el servidor
seguridad en el directorio a partir de su nombre en la red.
c) Inmediatamente despus de la consulta anterior, el ordenador saturno desea localizar el
servidor seguridad. Indicar el flujo de mensajes correspondiente.
d) Suponemos que el sistema de nombres utiliza el estndar X500. Decir qu ordenadores
contienen un Directory User Agent y cules contienen un Directory System Agent.
e) Escribir tres parejas de ordenadores entre los que se utilice el Directory Access Protocol.
f) Escribir tres parejas de ordenadores entre los que se utilice el Directory System Protocol.
g) Para cada uno de los cuatro servidores (ficheros, impresora, correo y seguridad) elegir
razonadamente el mecanismo de transporte aconsejable para conectar a ellos los ordenadores
clientes: peer to peer orientado a conexin, peer to peer no orientado a conexin, RPC o
MOM.
A PARTADO A )
ficheros.servicio1.empresa
impresora.servicio1.empresa
correo.servicio2.empresa
seguridad.servicio2.empresa
jupiter.gestion.empresa
saturno.gestion.empresa
A PARTADO B )
42
A PARTADO C )
A PARTADO D )
Directory User Agent
ficheros, impresora, correo, seguridad, jupiter, saturno
Directory System Agent
empresa, servicio1, servicio2, gestion
A PARTADO E )
fichero servicio1
correo servicio2
seguridad gestion
A PARTADO F )
43
servicio1 empresa
servicio2 empresa
gestion empresa
A PARTADO G )
Hecho por Pedro. Se aceptan correcciones.
TO BE CONTINUED...
Me da mucha pereza y no estoy seguro de lo que quieren pero creo que habra que
pensar que para la impresora nos interesa cola de mensajes, para el correo igual, para
la parte de seguridad posiblemente necesitemos RTP, para la de ficheros TCP si es
slo escritura directa, o incluso UDP y para la parte de gestin pues no sabemos nada
porque no tenemos detalles.
44
Sistemas Informticos II
Captulo II
Colas
II.1.
Teora
Tasa de servicio
Intensidad
de trfico
Ts
u= =
Ta
Factor
de
utilizacin
(II.1)
Por otra parte, el Teorema de Little nos da una relacin entre esos tiempos de espera y
el nmero de clientes.
45 de 112
(II.2)
Lq = Wq
(II.3)
(II.4)
Para modelar las colas, se utiliza la notacin A/B/c/K/N/Z, donde A y B son las
distribuciones del tiempo de llegadas y servicio respectivamente, c el nmero de
servidores del sistema, K la capacidad mxima, N el nmero total de clientes y Z la
forma de servicio. Normalmente, K = N = y Z = F IF O, as que se omiten. Segn
estos parmetros existen frmulas para sacar todos los parmetros, que podis ver en
el formulario de la asignatura.
II.1.1.
Distribuciones no Poissonianas
Coeficiente
cuadrtico
de variacin
Definicin II.1 Coeficiente cuadrtico de variacin. Dada una variable aleatoria X, se define
su coeficiente cuadrtico de variacin como
C2 =
V (X)
E (X)2
Segn el valor de ese coeficiente se puede tratar de sacar el tipo de distribucin, tal y
como se ve en la tabla II.1.
C2
(0, 0.7)
(0.7, 1.3)
(1.3, )
Distr.
Erlang-m
Poisson
Hiperexponencial
46
II.1.2.
Redes de colas
Cuando montamos varias colas, tenemos algunas definiciones que nos ayudan al
modelado.
Red de colas
abiertas
Definicin II.2 Red de colas abiertas. Se dice que un conjunto de K colas es una red de colas
abiertas si los clientes llegan en procesos de Poisson independientes, con tiempos de servicio
distribuidos exponencialmente y si, tras el proceso enPcada sistema j, el cliente pasa a la cola i
con probabilidad pij o bien sale con probabilidad 1 K
i=1 pji .
Se tiene que la tasa de llegadas a cada servidor es
j = j +
K
X
(II.6)
i pij
i=1
Teorema II.3 (Teorema de Jackson). Dada una red de colas abierta, la probabilidad de un
estado dado (entiendo como estado un vector (n1 , . . . , nK ) donde ni es el nmero de clientes
en el sistema i) est dada por el producto de las probabilidades de cada uno de los sistemas.
Esto es,
K
Y
P (N1 , . . . , Nk ) = (n1 , . . . , nK ) =
P {Ni = ni }
(II.7)
i=1
II.2.
Problemas
47
1500bytes
= 0.15s
10000bytes/s
1
= 6.66s1
Ts
/
/
=
=
=
= 9.09
1
1 /
( )/
Ejercicio 2.2: Se tiene un servidor en Internet que recibe un trfico de Poisson a un ritmo
medio P peticiones/s. El tiempo que tarda en atender una peticin se encuentra distribuido
exponencialmente, siendo capaz de procesar S peticiones/s.
Debido al xito del servidor, a los quince das de su aparicin en Internet su trfico se ha
multiplicado por un factor K. Para resolver el problema, se cambia de ordenador, solicitando
uno de potencia K veces superior al actual.
Calcular el nuevo nmero medio de clientes en el sistema servidor, y el nuevo tiempo de
permanencia en el sistema tras la ampliacin del servidor en funcin de los valores anteriores
al cambio.
Por tanto seguimos teniendo el mismo nmero medio de clientes en el sistema que
antes de producirse los cambios.
Para calcular el nuevo tiempo de permanencia nos apoyamos en el Teorema de Little
que nos permite escribir
L
W =
Ejercicio 2.3:
Se desea disear un servidor para satisfacer un trfico de Poisson con
un tiempo medio entre peticiones de 10 s. El servicio a proporcionar tiene una duracin
distribuida exponencialmente con media de 16 s. Calcular:
a) El nmero mnimo de servidores para satisfacer el trfico requerido.
b) Con dicho nmero de servidores, el tiempo medio de espera en cola por peticin.
c) El tiempo medio de espera en cola, en caso de independizar cada servidor, asignndole una
cola de espera a cada uno de ellos, y repartiendo el trfico entre ellos de modo aleatorio para
que cada uno reciba la mitad del total.
49
Vamos a ello:
= 0.8
2
p0 =
c1
X
(/)n
n=0
n!
(/)c
c!(1 )
p2 = p0
cc
c!
n
Pq =
Finalmente
L=
2.56 1
= 1 + 1.6 +
= (9)1 = 0.11
0.4
Pq
+ c = 4.44
1
L
= 44.4
Puesto que el tiempo de servicio es de 8s, el tiempo medio de espera en cola asciende a
W Ts = 24.4s
A PARTADO C )
Este caso es equivalente al ejercicio anterior con K = 0.5 por lo que tenemos
Wn =
Wo
= 88.8s
K
, lo que implica
W Ts = 56.8s
Dejuan opina que esa solucin sera para 1 peticin al segundo, pero como
queremos soportar una carga 10 veces mayor, entonces hara falta procesa 1MIPS (Mil
Instrucciones Por Segundo)
Ejercicio 2.5: Una fraccin p del trfico de salida procedente de un servidor con tiempo
de servicio distribuido exponencialmente con media Ts se realimenta a su entrada. El trfico
nuevo llega al servidor con un ritmo medio R. Calcular el factor de utilizacin del servidor
y el tiempo medio de estancia en el sistema.
La tasa de servicio es
=
R
1p
1
Ts
R Ts
=
1p
R Ts
L=
=
1
1 p R Ts
Aplicando ahora el Teorema de Little podemos calcular el tiempo medio de estancia en
el servidor como:
Ts
L
W = =
(1 p R Ts )(1 p)
Ejercicio 2.6:
En una determinada red de rea local se dispone de un servidor de
comunicaciones, que acta como encaminador de mensajes de aplicacin entre la dicha red y
una red remota, a la que se encuentra conectado a travs de una lnea dedicada de velocidad
2 106 bps.
A la red de rea local hay conectados un nmero muy grande de terminales clientes, que
envan mensajes cuyo tamao se encuentra distribuido exponencialmente con un valor
medio de 1 KByte.
Se puede considerar que los mensajes llegan al servidor siguiendo un ritmo de Poisson. Se
pide:
51
= 180s1
1
= 244.14s1
Ts
= 0.74
y, puesto que estamos ante un sistema M/M/1 podemos calcular el nmero medio de
clientes en el sistema como
L=
= 2.85
1
y a partir del Teorema de Little calculamos el tiempo medio de estancia en el sistema,
que es el dato pedido
L
W = = 0.016s
A PARTADO B )
Ahora nos encontraramos ante un sistema M/M/1/K siendo K el nmero mximo de
clientes en el sistema que se calcula como el nmero mximo de clientes en cola +1 (el
que se est procesando).
Puesto que conocemos el tamao de la cola y el tamao de los mensajes, podemos
calcular K = 10 mensajes. Es decir, tenemos un sistema M/M/1/10 y nos piden
calcular L, el nmero medio de clientes en el sistema.
52
/ 1 (K + 1)(/)K + K(/)K+1
/ 1 (3)(/)2 + 2(/)3
=
=
1 /
1 (/)K+1
1 /
1 (/)3
=
0.74 0.17
= 0.81
0.26 0.6
2
2
10 =
= = 229s1
( )
250(250 )
a) Calcular el tiempo medio que transcurre desde que un mensaje llega al sistema hasta que
es servido a su destino.
1
La verdad es que no estoy del todo convencido tampoco de que haya que hayar ..., pero si que
entiendo que es el mismo
53
1
S
=LS
Puesto que nos encontramos ante un sistema M/M/1 podemos calcular el nmero de
clientes en el sistema a partir del factor de utilizacin:
Lc =
L
=
1
SL
Por ltimo calculamos el tiempo medio de estancia en el sistema a partir del teorema
de Little:
Lc
LS
W =
=
S Lc
A PARTADO B )
Los ingresos medios sern el precio por mensaje por el nmero medio de mensajes que
se manipulan menos el dinero que se devuelve por segundo de retraso multiplicado
por el retraso habitual de procesamiento de los mensajes.
Nos queda la frmula
Ingresos = P Lc D W
A PARTADO C )
Basta con igualar los ingresos a 0:
P Lc = D W P Lc =
LS
S Lc
54
Ejercicio 2.8: Una red de una entidad financiera consta de una serie de terminales
remotos, en nmero que podemos considerar muy grande, conectados mediante lneas
telefnicas alquiladas full duplex a un multiplexor de terminales. Dicho multiplexor entrega
los mensajes recibidos a un servidor, que ejecuta los programas transaccionales necesarios
para atender al mensaje recibido, y devuelve los resultados al cliente a travs del mismo
multiplexor. El esquema de bloques del servicio es el siguiente:
Los mensajes de las oficinas llegan al multiplexor segn un proceso de Poisson con una tasa
de llegadas total de 3s1 (es decir, incluyendo las peticiones de todos los servidores) y su
longitud media es de 1 Kbyte. El tiempo de servicio del multiplexor por mensaje (total del
proceso y envo del mensaje) se puede considerar distribuido exponencialmente con valor
medio 250 ms.
a) Calcular la ocupacin media en memoria de la cola de mensajes en espera de servicio del
multiplexor
b) Calcular la tasa de llegadas al servidor.
c) Los mensajes que llegan al servidor son de tres tipos bsicos. El tiempo de proceso en el
servidor depende del tipo de mensaje recibido, de acuerdo a la siguiente tabla:
Tipo mensaje
Probabilidad
Tiempo de proceso
0.5
0.1
0.3
0.2
0.2
0.4
Estos tiempos incluyen lo que tarda el mensaje de respuesta en llegar al terminal remoto.
Esta transmisin del mensaje de respuesta se supone que no afecta al tiempo de proceso del
multiplexor ni a la comunicacin por la lnea que lo une con el terminal.
Calcular el tiempo medio de estancia en el servidor de las solicitudes.
55
= 0.75
L=
=3
1
=
A PARTADO B )
La tasa de llegadas al servidor es exactamente la misma que la tasa de llegadas al
multiplexor. Cada mensaje que llega a este ltimo es enviado al servidor
A PARTADO C )
El tiempo de servicio en el servidor se puede calcular como una suma ponderada de
los tiempos de servicio de cada tipo de mensaje.
Ts = 0.5 0.1 + 0.3 0.2 + 0.2 0.4 = 0.19 = =
1
= 5.26
Ts
= 0.57 = L =
= 1.33 = W = = 0.44s
Ejercicio 2.9: El servidor de fecha y hora de una red resuelve cada peticin en un tiempo
que se puede suponer distribuido exponencialmente con media 100 ms. La red se compone
de un nmero muy grande de clientes que realizan peticiones, cuya llegada al servidor se
considera que sigue un proceso de Poisson.
a. Calcular el nmero mximo de peticiones por segundo que se podrn satisfacer para
obtener un tiempo medio de respuesta del servidor menor o igual que 1 s.
b. Calcular el tiempo medio de servicio necesario para poder satisfacer el doble de
peticiones reduciendo el tiempo de respuesta a la mitad.
a. Nos piden calcular el nmero mximo de peticiones por segundo que se pueden
satisfacer, es decir, tenemos que calcular .
Sabemos que el tiempo medio de servicio es de 100 ms, por lo que tendremos que
=
1
1
1
=
=
= 10s1
Ts
100ms
0.1s
1
=
=
< 1 = > + 1
(1 )
Ejercicio 2.10:
1
1
= > + 2 = > 20 = Ts <
= 50ms
2
20
57
b. Calcular el tiempo medio de estancia en el sistema de las peticiones que necesitan ser
atendidas por ambos servidores, justificando el modelo de clculo elegido.
c. Calcular el tiempo medio de estancia en el sistema total.
d. Realizando medidas sobre el sistema en produccin se descubre que el tiempo de
servicio del servidor web no sigue una distribucin exponencial, sino una distribucin
cuyo coeficiente cuadrtico de variacin es igual a 5. Justificar la validez o invalidez
del modelo empleado en los apartados anteriores, indicando las alternativas si no se
considera vlido.
L=
= 20 = = = 0.27
Ts
= 0.37 = W = = 0.07s
1
L=
= 1 = = = 0.6
Ts
L
= 1.5 = W = = 15s
1
c.
W = Ws1 + p Ws2 = 1.57s
d. El modelo empleado no ser vlido ya que para serlo el coeficiente cuadrtido de
variacin debera ser muy prximo a 1, cosa que no se cumple.
A fin de ajustar las estimaciones deberamos repetir los clculos considerando una
distribucin de tipo hiperexponencial
Al considerar slo las peticiones que slo requeran procesamiento por parte del servidor web, la tasa
de llegadas se reduce
58
= 10
Colas infinitas
Ts = 50ms
Antes de hacer ningn clculo, reconocemos que se trata de un modelo M/M/2
a. Para calcular el tamao medio de la cola de mensajes basta con calcular el nmero
medio de mensajes en la cola y multiplicarlo por el tamao de cada mensaje.
Por el teorema de Little tenemos
Lq = Wq
Pero sabemos que el tiempo de estancia en el sistema es la suma del tiempo de
servicio ms el tiempo de espera en cola, de modo que
Lq = Wq = (W Ts )
y aplicando nuevamente el teorema de Little para calcula W tenemos:
L 1
= L c
Lq =
59
Ts
=
= 10 25ms = 0.25
2
2
Pq
+ c
1
pc
1
p0 =
0.52 3
1 + 0.5 +
2 0.75
!1
=
1
= 0.6
1.64
pc
0.075
=
= 0.1
1
0.75
Pq
0.1 0.25
+ c =
+ 2 0.25 = 0.53
1
0.75
Ahora calculamos Lq
Lq = L c = 0.53 2 0.25 = 0.03
Y por ltimo multiplicamos por el tamao de cada mensaje:
Tamao medio = 0.03 25Kb = 0.75KB
b. El tiempo medio de estancia en el sistema puede calcularse, a partir del Teorema
de Little, como:
L
0.53
W = =
= 0.053
10
60
X
n=6
X
cc
cc
1
0.6 2 6.10 105
cc
p0 n = p0 6
=
=
n6 = p0 7
c!
c!
c! 1
0.75
n=6
= 9.76 105
Ejercicio 2.12:
Para dar servicio de consultas a base de datos en una red se dispone
de dos ordenadores. El primero, que llamaremos A, tiene un tiempo medio de servicio de
100 ms., pero por construccin slo admite 5 peticiones en espera de servicio. El segundo,
que llamaremos B, tiene un tiempo medio de servicio de 500 ms., pero admite un nmero
ilimitado de peticiones en cola de espera. Los tiempos de servicio de ambos servidores se
pueden considerar distribuidos exponencialmente. La arquitectura que se decide para dar el
servicio coloca los dos servidores en paralelo. Las peticiones sern procesadas por el servidor
A, excepto en el caso de que ste se encuentre al mximo de su capacidad (5 peticiones en
cola mas una en servicio), en cuyo caso la peticin ser pasada al servidor B. La llegada
de consultas al sistema se puede considerar como un proceso de Poisson, con una tasa de
llegadas de 9 peticiones por segundo. Existe un nmero muy grande de clientes, de modo
que el nmero de peticiones pendientes de servicio no afecta al ritmo de llegada de nuevas
peticiones.
Calcular el tiempo medio de estancia en el sistema de las peticiones que son procesadas
por el servidor A.
Calcular el tiempo medio de estancia en el sistema total compuesto por los servidores
A y B.
LA =
1
= 10
TSA
/ 1 (K + 1)(/)K + K(/)K+1
=
1 /
1 (/)K+1
/ 1 (7)(/)6 + 6(/)7
=
= 2.5
1 /
1 (/)7
61
WA =
L
L
=
0
(1 pk )
k
= 0.1
As nos queda:
WA =
2.5
= 0.3s
9(1 0.1)
1 /
p6 = p0
=
= 0.1
7
1 (/)
1
= 2 = = 0.46
TSb
LB
= 0.85 = WB =
= 0.94
1
B
Una vez conocido este valor, podemos calcular el tiempo medio de estancia en el
sistema como:
W = (1 p6 )WA + p6 WB = 0.346s
Ejercicio 2.13:
Un sistema de registro de incidencias se compone de una red de 5 terminales que realizan
la entrada de datos manual, y un servidor, que recibe solicitudes tipo RPC para validar los
datos introducidos en el cliente y almacenarlos en una base de datos. El tiempo que dicho
servidor emplea para realizar las operaciones mencionadas se puede considerar distribuido
exponencialmente con un valor esperado de 15 s. Cuando un cliente genera una peticin,
queda inactivo a la espera de recibir la respuesta del servidor. Una vez recibida dicha
respuesta, el tiempo que tarda en generar una nueva peticin es aleatorio y tambin se
encuentra distribuido exponencialmente, con un valor medio de 1 minuto. Proponer un
modelo de colas vlido para este problema, y calcular la ocupacin media del servidor y el
tiempo medio de estancia en el sistema de las peticiones que son procesadas.
1
= 0.07s1
Ts
Puesto que cada cliente realiza de media una peticin por minuto, tenemos que
=
1
= 0.017s1
60s
= 1 p0 = 1
X
n=0
M!
(M n)!
n 1
= 0.801
que es la ocupacin media del servidor que nos pedan calcular: 80,1 %
Para calcular el tiempo medio de estancia en el sistema empezamos calculando
L=M
0
= 1.796 clientes
L
L
=
= 33.63 segundos
0
Ejercicio 2.14: Basndose en los conceptos de teora de colas expuestos en las clases de
teora, hallar la distribucin de probabilidad del nmero de unidades en el sistema para un
modelo de colas en el cual:
La llegada de clientes al sistema sigue un proceso de Poisson con tasa de llegadas .
El tiempo de servicio est distribuido exponencialmente con media 1/.
Existen c servidores para atender las peticiones.
El nmero total de unidades en el sistema est limitado a un mximo de K, siendo
K>c.
El nmero de clientes se puede considerar infinito.
A partir de dicha distribucin, calcular el nmero medio de unidades en el sistema, el
factor de servicio, la tasa efectiva de llegadas al sistema, el tiempo medio de estancia
en el sistema, el tiempo medio de estancia en cola y el nmero medio de unidades en
cola de espera.
63
1 = + q = =
1q
2 = q1
Ahora podemos calcular el factor de utilizacin de cada uno de los subsistemas:
1 =
=
1
1 (1 q)
2 =
2
q
=
2
2 (1 q)
P(rechazo) = 1 p0 p1 p2 = 1 p0 p0
=
1 /
1 /
1 /
=1
4
4
1 (/)
1 (/) 1 (/)4
2
= 0.313
=
k+1 = 0.807
1
Es decir, el servidor estar activo el 80.7 % del tiempo.
Para el tiempo medio de estancia en el servidor aplicamos el teorema de Little con lo
que obtenemos
W =
1 / 1 4(/)3 + 3(/)4
L
= 0.496 segundos
=
1 /
1 (/)4
65
El acceso al nico disco del sistema emplea un tiempo distribuido exponencialmente, con un
valor medio de T2. Una vez realizado el acceso a disco, la peticin volver siempre a la cola
de entrada en espera nuevamente de que alguna de las CPUs est libre para continuar el
proceso.
El tamao de las colas de espera en cualquier parte del sistema se puede considerar infinito.
Datos numricos: R = 2s1 ; p = 0.8; T1 = 20 ms.; T2 = 100 ms.
a. Dibujar el diagrama de bloques del sistema, indicando en l los puntos de
encolamiento, tasas de peticiones recibidas en cada punto y tiempos de servicio de
cada uno de los elementos que lo componen.
b. Calcular el nmero medio de unidades en cola en el sistema total.
c. Calcular el tiempo medio de estancia en el sistema de una peticin.
d. A partir de los resultados obtenidos, identificar los cuellos de botella del sistema,
y realizar sugerencias sobre las modificaciones que sera necesario introducir en el
mismo para reducir el tiempo medio de estancia en l.
R
= 10s1
1p
pR
= p 10s1 = 8s1
1p
1
= 100s1
T1 /2
2 =
1
= 10s1
T2
1
1
= 0.1 = L1 =
= 0.11
1
1 1
66
2 =
2
2
= 0.8 = L2 =
=4
2
1 2
W1 + pW2
= 2.06s
1p
Estamos teniendo en cuenta el hecho de que no todas las peticiones pasan por
ambos subsistemas al multiplicar por p.
Por otro lado estamos considerando la recursividad a la hora de calcular la tasa
de llegadas a cada uno de los subsistemas, dato en que nos hemos basado para
calcular los tiempos medios de estancia.
d. A partir de estos datos podemos observar que el cuello de botella en el sistema es
el acceso al disco que, por ser disco nico y tener tiempo de acceso 5 veces mayor
que el tiempo de procesamiento en cada una de las 2 CPUs, lleva 10 veces ms
tiempo que el procesamiendo de la peticin.
Habra que disminuir este tiempo mediante una sustitucin del disco por uno
ms rpido, permitiendo mltiples accesos simultenos al disco o aumentando el
nmero de discos.
67
Ejercicio 2.18: Se ha detectado que el cuello de botella en una aplicacin se produce al leer
del disco. Para solucionarlo, se plantean dos alternativas:
Comprar un disco con tiempo de acceso menor, pero ms caro. En este caso, se encolan
las peticiones cuando el disco se encuentre ocupado.
Poner dos discos en espejo (mirroring) que tendrn un tiempo de acceso mayor que el
anterior, pero ms baratos. En este caso, se accede indistintamente a cualquiera de los
dos discos cuando se produce una peticin, dependiendo de cul est libre, encolndose
todas las peticiones en una cola comn.
(Datos numricos: tiempo medio de acceso disco rpido: 10 ms; tiempo medio de acceso de
cada disco lento: 15 ms. En ambos casos se supone distribucin exponencial).
Suponiendo que la aplicacin es la nica que realiza los accesos a disco, que las peticiones de
lectura se producen segn un proceso de Poisson, y que las colas se pueden suponer infinitas:
a. Calcular para ambos casos el nmero medio de peticiones por segundo que se podrn
satisfacer para obtener un tiempo medio de lectura igual a 100 ms.
b. Calcule la tasa de peticiones para la que ambos casos dan el mismo rendimiento, y el
tiempo medio de lectura para este caso.
1
L
=
= 0.1 = = 90s1
1 1
2 2
1
1+/(1)++2 /(2(1))
(1 )(2 2 )
2
+
68
A PARTADO B )
Est claro que en media se cumplen los requisitos, pero para comprobar que se cumple
el porcentaje hay que calcular el percentil. De la frmula de la distribucin (que aparece
en el chuletario), queremos:
()t
0.9 = 1e
= 10.9 = e
()t
1
= t =
ln
1
0.1
= W ln(1p) = 97.86ms
1
Utilizando W = +
podramos sacar y con ello la tasa de servicio necesaria.
(Entiendo que a este tipo de razonamiento se refiere con sugerir cualitativamente
soluciones)
Ejercicio 2.20: Se desea disear un Directory System Agent X.500, que denominaremos
DSA1, en el que se espera recibir, a travs del protocolo DAP, un trfico que se puede suponer
de Poisson con un valor medio de 50 peticiones / s.
a) Suponiendo que el tiempo de servicio del servidor de nombres se encuentra distribuido
exponencialmente, calcular la capacidad media que debe tener el servidor, en peticiones por
segundo, para que el 95 % de las peticiones que reciba tengan un tiempo total de estancia en
el sistema de menos de 10 ms.
b) Cuando al procesar una peticin recibida DSA1 no tiene los datos necesarios para
resolverla, redirige la peticin a otro Directory System Agent de nivel superior, que
denominaremos DSA2, mediante protocolo DSP. Esto ocurre, en promedio, en un 25 % de
las peticiones que procesa. Este nuevo servidor contesta directamente al cliente que realizaba
la peticin.
Se sabe que DSA2 recibe consultas de muchos ms servidores, componiendo el total de
ellas un trfico de Poisson con una media de 200 peticiones / s. Su tiempo de servicio, que
tambin se puede considerar distribuido exponencialmente, hace que sea capaz de procesar
un promedio de 300 peticiones / s.
Si se desea que el tiempo medio de respuesta de una peticin realizada a DSA1,
independientemente de quin la procese, sea igual o inferior a 6 ms, determinar cul sera
la capacidad media que debera tener DSA1 para poder cumplir este requerimiento. Qu
condicin es ms restrictiva para el sistema, esta o la establecida por el primer apartado?
Cul elegiramos en nuestro diseo si DSA1 debe cumplir ambas?
70
Vamos a suponer que el tiempo que tarda DSA1 en redirigir la peticin es despreciable.
Tenemos que calcular primero cul es el tiempo medio de espera de peticiones a DSA2.
Sabiendo que es un M/M/1, tenemos que
W2 =
1
300
200
300
= 0.01 s
Sabemos que el tiempo total de estancia ser una media ponderada entre los de DSA1
y DSA2, luego
W = 0.75W1 + 0.25W2
, as que si queremos que ese tiempo sea igual o inferior a 6 milisegundos, despejamos
y vemos que
0.006 0.75W1 + 0.25 0.01 =
0.0035
W1 = 0.0046 W1
0.75
Dejuan opina que: 0.006 W1 + 0.25 0.01 ya que todas las peticiones a DSA1 van a
tener que ser procesadas por l, y si no puede hacer nada con ellas, las redirige. Con
1
= = 335.
estos clculos: W1 0.0035, es decir 3.5ms. Ahora despejamos W =
Fin de la sugerencia
Tenemos unos 4 milisegundos para responder en DSA1. Vamos a despejar ahora para
sacar la tasa de servicio :
W1 =
L1
W1 =
1
1
W1 =
W1 = 1 + W1
1 + W1
=
W1
Sustituyendo, nos queda 264.285. Dado que esta condicin nos da una tasa de
servicio ms grande, elegiramos esta para cumplir los dos requisitos que se nos piden.
71
72
1
Ts
E1
0.000011574
C1
0.000002894
C2
0.000005787
P1
0.000001157
P2
0.000002894
E2
0.000046296
E1
1/D
C1
3/(2D)
C2
C1 = 3/(2D)
P1
1/(3D)
P2
P1 = 1/(3D)
E2
0.75
0.75
3
+ C1 0.5 = C1 =
=
D
D 0.5
2D
0.25
0.25
1
+ P1 0.25 = P1 =
=
D
D 0.75
D3
73
S/E
= / = T
L = /(1-) [clientes]
W = L/ [s/cliente]
E1
1/D
1/(D 1)
D/(D 1)
C1
6/D
6/(D 6)
4D/(D 6)
C2
3/D
3/(D 3)
2D/(D 3)
P1
10/(3D)
10/(3D 10)
30D/(3D 10)
P2
4/(3D)
4/(3D 4)
12D/(3D 4)
E2
1/(4D)
1/(4D 1)
D/(4D 1)
Ejercicio 2.22: Se realizan medidas sobre el tiempo que emplea en procesar peticiones
un servidor de aplicaciones, descubriendo que su distribucin de probabilidades se puede
aproximar por una funcin de Pareto de parmetros tm=5 ms y k=3. Partiendo de estos
datos:
a. Si el servidor recibe un trfico de Poisson con un valor medio de 100 peticiones/s,
calcule el valor medio del tiempo de respuesta del servidor a las peticiones del usuario.
b. Si la salida del servidor de aplicaciones se recibe a la entrada de un servidor de registro
de trfico que tiene un tiempo de servicio distribuido exponencialmente, y que es capaz
de procesar un promedio de 10000 peticiones/s, comentar qu modelo de sistema de
colas sera adecuado para representar el comportamiento de este servidor. Escribir el
modelo elegido en notacin de Kendall.
Nota: La funcin de densidad de una distribucin de Pareto viene dada por la frmula:
f (t) = k
tkm
tk+1
para t > tm
3t
1, 25 107
= 1, 875 107 s
t4
1
= 5.33 106 s1
Ts
74
2 E[S 2 ]
= 1, 875 105 = L =
= 1, 875 103
2(1 )
b. Deberamos utilizar una red de colas con dos servidores siendo el primero M/G/1
y el segundo G/M/1 donde G es la distribucin de Pareto.
75
Ejercicio 2.25: Un sistema distribuido construido bajo el modelo J2EE consta de dos capas:
la capa de servicio Web, compuesta por un servidor, y la capa de servidores de aplicaciones,
que consta de dos elementos que procesan en paralelo. El reparto de peticiones desde el
servidor web a los servidores de aplicaciones se realiza de manera aleatoria y no es necesario
guardar datos de los usuarios entre una peticin y la siguiente.
El servidor web tiene cola de peticiones finita. Admite un mximo de 6 peticiones, que se
procesan en secuencia. En los servidores de aplicaciones se puede considerar que no hay
lmite para el nmero de peticiones que admiten. Se reciben las peticiones siguiendo un
proceso de Poisson a un ritmo promedio de 200 peticiones por segundo. Los tiempos de
servicio de los servidores de ambas capas se puede considerar que siguen una distribucin
exponencial, con valor medio de 3 ms en el caso del servidor web y 9 ms en cualquiera de los
servidores de aplicaciones.
a. Dibujar el esquema del sistema propuesto, e identificar las tasas de entrada efectivas
en cada una de las capas. (No las calcule en este apartado, slo exprese las frmulas
bsicas que las relacionan con la tasa de entradas total).
b. Calcular la fraccin de peticiones que se rechazan del sistema.
c. Calcular el tiempo medio de respuesta para las peticiones que no son rechazadas del
sistema.
d. Identificar las soluciones ms eficaces para mejorar el tiempo medio de respuesta
calculado anteriormente.
Ejercicio 2.26:
Una empresa dispone de un monitor de proceso de transacciones que
controla el acceso a una base de datos. El monitor recibe solicitudes con una frecuencia media
de dos veces por segundo segn una distribucin de Poisson. Si el monitor est atendiendo
alguna peticin, las solicitudes que lleguen esperan en una cola cuya capacidad mxima es
de ocho solicitudes. Si la cola est llena, la solicitud es rechazada y debe ser enviada de nuevo
por el ordenador cliente. Desde que el monitor acepta una transaccin hasta que la da por
terminada, transcurre un tiempo distribuido exponencialmente cuya esperanza matemtica
es de 500 milisegundos.
a) Qu modelo, segn la notacin de Kendall, ser aplicable a este sistema?
b) Calcular el tiempo medio de estancia en el sistema de las peticiones de autenticacin de
los clientes.
c) Qu pasara si se ampliase la cola del monitor para darle una capacidad ilimitada?
El modelo sera M/M/1/9, ya que como mucho puede haber 9 clientes en el sistema (ocho
en la cola y una en el monitor).
A PARTADO B )
Segn nos dicen en el enunciado, tenemos que = 2 s1 . Por otra parte, Ts = 0.5 s as
que = T1s = 2 s1 . Dado que = , podemos usar la frmula simplificada que nos
dice que
K
9
L=
= = 4.5
2
2
y por lo tanto el tiempo medio de estancia es
W =
siendo
L
L
4.5
=
=
= 2.5 s
0
(1 pK )
2(1 p9 )
9
1
p9 = p0
=4
= 0.1
K +1
A PARTADO C )
En ese caso el modelo sera M/M/1, que al tener factor de utilizacin =
tendra un estado estable y la cola crecera hasta el infinito.
= 1 no
Recordemos que =
77
Ejercicio 2.28:
Una empresa decide poner en alta disponibilidad su servidor de
autenticacin de usuarios de la manera ms econmica que sea posible. Para ello, duplica
el servidor, y para lograr el balanceo de carga entre ambos servidores realiza un sencillo
programa. Dicho programa se instala en un tercer servidor, cuya direccin IP ser a la que
accedan a los usuarios. El programa de balanceo no admite encolamiento de las peticiones
que recibe de los clientes, de modo que si se encuentra procesando una de ellas, rechaza todas
las peticiones adicionales que le lleguen.
a. Si el tiempo de proceso del balanceo se encuentra distribuido exponencialmente con
un valor medio de 2 ms., y el servidor recibe peticiones siguiendo un trfico de Poisson
con un valor medio de 250 peticiones / s., calcular la probabilidad de que una peticin
que reciba sea rechazada.
b. Cada uno de los servidores de autenticacin tiene un tiempo de servicio con una
distribucin uniforme entre 5 y 10 ms., y su cola de espera de peticiones no est
limitada. Calcular el tiempo medio de estancia en el conjunto del sistema balanceadorservidor de autenticacin de las peticiones no rechazadas.
1 /
= 0.33
1 (/)2
L
E[S 2 ]
83.75 3 107
0.4
=
+ =
+
= 8.05 103 segundos
2(1 )
2(1 0.6)
83.75
78
Sistemas Informticos II
Captulo III
Introduccin
Disponibilidad
2 Paradas planificadas
Son requeridas por la aplicacin para su correcto funcionamiento: Rearranques
programados, copias de seguridad, cambios de configuracin...
Por ser previsibles permiten un tratamiento sistemtico. Los sistemas que las
minimizan se denominan de Operacin Continua (Continuous Operation, CO)
Algunas de las causas ms frecuentes por las que se producen este tipo de paradas
son:
Copias de seguridad.
Reemplazar o actualizar hardware.
Reemplazar o actualizar aplicaciones.
Actualizar sistema operativo.
Instalacin de parches
Evidentemente, un sistema ideal sera de Alta Disponibilidad y de Operacin Continua.
No obstante, a mayor disponibilidad del sistema mayor es el coste del mismo y su
mantenimiento. Por tanto, es necesario valorar el nivel de disponibilidad requerido
para un funcionamiento aceptable e invertir lo necesario para conseguirlo sin tratar de
superarlo.
Antes de seguir estudiando el tema de la disponibilidad, vamos a ver una serie de
definiciones de trminos que aparecern a lo largo de los apuntes y que es necesario
precisar.
Fiabilidad
(Reliability)
Elasticidad
o Resiliencia
(Resiliency)
Mantenibilidad
(Serviceability)
Sistemas
tolerantes
a
fallos
(FaultTolerant
Systems)
80
Clusters
de
alta
disponibilidad (High
Availability
Clusters)
Clusters
de
alto
rendimiento
(High Performance
Clusters)
Recuperacin
ante desastres
(Disaster
Recovery)
III.2.
Teora de la disponibilidad
III.2.1.
Disponibilidad
Top
Ttot
Pero esta medida no da una idea global de la disponibilidad del sistema, pues un mismo
valor puede obtenerse de la misma forma.
Por ejemplo, no es lo mismo que un sistema est disponible 99 horas de cada 100 que 99
segundos de cada 100. Incluso si dos datos se han obtenido dividiendo los datos en las
mismas unidades y estamos, por ejemplo, en 99 horas de cada 100 de actividad, puede
ser que el sistema haya fallado una nica vez en esas 99 horas y tardase una hora en
recuperarse o que el sistema falle cada media hora tardando poco en recuperarse.
Por ello se utilizan otras medidas para estudiar la disponibilidad del sistema.
Tiempo
medio de reparacin/recuperacin
81
En ingls Mean Time To Repair/Restore, MTTR, es el valor esperado del tiempo que se tarda
en sustituir un equipo averiado o recuperar un fallo de software.
A partir de estos valores se calcula la disponibilidad segn la frmula:
A=
MTTF
MTTF
=
M T BF
MTTF + MTTR
III.2.2.
Fiabilidad
FT (x) FT (t)
1 FT (t)
Funcin de
tasa de fallo
fT (x)
1 FT (x)
x = t.
r(t) = fT (t|T > t) =
R0 (t)
R(t)
III.2.3.
83
III.2.4.
Mantenibilidad
III.2.5.
n
Y
i=1
Ai ; R(t) =
n
Y
Ri (t); r(t) =
i=1
n
X
ri (t)1
i=1
84
III.3.
i=1
i=1
Mejoras de la disponibilidad
MTTF
1
=
MTTF + MTTR
1 + M T T R/M T T F
85
III.3.1.
Single Point
Of Failure,
SPOF
Fail-over
Fail-back
III.4.
Los sistemas de comunicaciones son uno de los puntos crticos de todo sistema
distribuido.
Vamos a distinguir la redundancia en las redes de rea local (LAN) y en redes de rea
extendida (WAN) considerando en ambos casos los estndares de facto actuales: redes
LAN basadas en Ethernet y TCP/IP como medio de transporte.
Las caractersticas de los equipos que actualmente se emplean para implementar una
LAN hacen que estas redes se puedan construir atendiendo a tres modelos distintos:
Nivel 2 compartido Mltiples servidores se conectan a un mismo segmento de
86
87
III.4.1.
Al aplicar este protocolo tenemos cada switch asociado a un identificador que nos da su
prioridad. El de mayor prioridad (menor identificador, ID1) se denomina switch raz. El
siguiente en prioridad se le denomina switch raz alternativo (ID2).
Para cada puerto hay que determinar de que tipo es:
Raz. Da el mejor camino al switch raz
Designado. Proporciona a cada segmento de red conectado al switch el mejor
camino al switch raz. Es decir, que para algn nodo, su mejor camino hasta el
nodo raz implicar coger justo este enlace.
Alternativo. Otros.
Peridicamente, cada switch genera una Bridge Protocol Data Unit, BDPU y la enva a
todos los switches de la red.
Mirar el ejemplo de moodle subido por la profesora. Explica bastante bien el protocolo
III.4.2.
III.4.3.
EtherChannels
III.4.4.
OSPF
VRRP
Definicin III.14 VRRP. Protocolo de clustering para routers empleado para proporcionar
redundancia en routers en los casos en que representan un punto nico de fallo en rutas de la
red. El router se sustituye por un virtual router formado por un router activo y otro en stand-by.
El router de mayor prioridad ser el activo y asume como propias una direccin IP y una MAC
que habrn sido asignadas al router virtual. Si cae el router se activa otro.
El router activo enva mensajes Hello en multicast cada x segundos. Si transcurre un
tiempo predefinido sin recibir mensajes Hello, se da al router por muerto y se activa
el siguiente en prioridad. Este tiempo de espera predefinido es menor cuanto menor
sea la prioridad. As cuando est un router activo que no sea el inicial, tendr ms
89
Balanceador
de carga
III.4.5.
91
Flash Copy
Definicin III.16 Flash Copy. Copia de una Unidad Lgica en el instante que se solicita,
copiando los punteros a los sectores que contienen la informacin.
En caso de que haya una actualizacin de un sector, se copia la informacin antigua y se actualiza
el puntero de la copia instantnea.
Se emplean para generar una copia consistente de la informacin en un momento preciso para
su uso posterior.
Observacin: Bsicamente guardas un puntero a la posicin guardada. Si no la modifican,
3
Viene a ser como las particiones lgicas pero que afectan a diferentes discos, no slo a 1
92
pues ya lo tienes. Si se modifica esa parte del disco, mueves la antigua informacin a otro sitio y
actualizas tu puntero.
Las copias remotas sncronas consisten en que la actualizacin de la informacin del
servidor primario se copia a los secundarios y el proceso no finaliza hasta que no se ha
actualizado la informacin en todos los servidores, lo que da lugar a una alta latencia de
escritura. Empleado para realizar copias locales que garanticen la alta disponibilidad
En las asncronas, una vez se actualiza el primario se guardan los cambios en un buffer
y se van aplicando en el resto de servidores mediante un proceso en paralelo. Requiere
un protocolo de sincronizacin. Empleado para realizar copias remotas que permitan
la recuperacin ante desastres Leer ms
Las posibles averas en discos fsicos individuales son resueltas por la arquitectura
RAID. Si se producen averas en una Unidad Lgica (LUN) completa o en un servidor
de disco se siguen los siguientes pasos:
1 Fail-Over. Se interrumpe la copia remota y la LUN secundaria pasa a principal.
Para ello se notifica al servidor de proceso que debe usar a LUN secundaria y se
comienza a registrar los cambios.
2 Fail-Back Se copia el secundario activo al primario una vez recuperado. Para ello
se detiene el trabajo del servidor de proceso, se restablece la copia y se notifica al
servidor de proceso que puede seguir utilizando el primario.
III.4.6.
Definicin III.17 Heartbeat. In computer clusters, heartbeat network is a private network which is shared only by the cluster nodes, and is not accessible from outside the
cluster. It is used by cluster nodes in order to monitor each nodes status and communi-
93
http://en.wikipedia.org/wiki/Heartbeat_network
94
III.5.
basta con las tcnicas de alta disponibilidad vistas hasta ahora sino que son necesarias
nuevas tcnicas que se presentan en esta seccin.
Veamos algunas definiciones necesarias para entender los conceptos que analizaremos
en este apartado:
Recovery
Point
Objective
(RPO)
Definicin III.18 Recovery Point Objective (RPO). Instante de tiempo al que se es capaz de
recuperar la informacin existente en el sistema tras un fallo. Si no es 0, habr perdida de datos
Definicin III.19 Recovery Time Objective (RTO). Tiempo que se tarda en recuperar los
sistemas tras producirse un fallo. Si no es 0, habr interrupciones de servicio.
Menores valores de RTO y RPO requieren mayor coste por lo que hay que analizar bien
las necesidades del servicio.
Hay unas reglas bsicas en el diseo de arquitecturas tolerantes a desastres:
a. Proteger datos y nodos de proceso mediante distribucin geogrfica.
Cuanto ms alejados se encuentren, mayor seguridad, pero mayor complejidad y
coste.
b. Proporcionar a los CPDs redundancia en el suministro de energa. Preferiblemente con acometidas independientes, a travs de rutas alternativas de distribucin y
proporcionadas por distintas entidades suministradoras.
c. Proporcionar a los CPDs redundancia en el acceso de telecomunicaciones. Con las
mismas consideraciones que en el caso anterior.
d. Generar copias consistentes de la informacin, garantizando la capacidad de
recuperar los datos desde ellas.
Copias off-line: backups en cinta. Proporcionan un RPO elevado.
Puesto que hay que hacerlos de forma consistente, debe detenerse las
aplicaciones mientras se realiza el backup o emplear tcnicas de copia
instantnea.
Adems debe probarse que la informacin se restaura correctamente.
Copias on-line: rplicas directas de disco a disco. Proporcionan un RPO
reducido.
Los mecanismos ms habituales, ordenados de menor a mayor fiabilidad
son:
a) Scripts de usuario. Automatizados por planificador.
b) Rplicas basadas en software en los sistemas de proceso, a distintos
niveles:
c) Rplicas basadas en nivel de driver: mirroring remoto.
d) Rplicas basadas en el hardware de los servidores de disco: sncronas y
asncronas, estudiadas previamente.
96
III.5.1.
97
Soluciones mixtas
Cluster local o metropolitano para garantizar alta disponibilidad, aadiendo un
cluster continental para garantizar recuperacin ante desastres.
III.5.2.
98
III.6.
Problemas
Ejercicio 3.1: Se dispone de un equipo con un MTTF de 500 horas, que se encuentra bajo
un contrato de mantenimiento que garantiza su reparacin en un tiempo medio de 10 horas.
a) El proveedor nos ofrece sustituirlo por un equipo de mayor calidad, con un MTTF de
1000 horas. Calcular la mejora de disponibilidad que supone este cambio.
b) Tras un tiempo trabajando con el nuevo equipo, el proveedor nos ofrece de nuevo un
nuevo equipo de mucha mayor calidad, con un MTTF de 2000 horas. Calcular la mejora de
disponibilidad que supondra el nuevo cambio respecto al segundo equipo.
A PARTADO A )
Calculemos la disponibilidad de cada equipo:
A1 =
500
50
=
0.98039
500 + 10
51
100
1000
=
0.990099
1000 + 10
101
Luego la mejora es inferior al 1 %.
A2 =
A PARTADO B )
2000
200
=
0.995
2000 + 10
201
Lo que supone una mejora inferior al 0.5 % respecto al segundo y un 1.5 % respecto al
original.
A3 =
Ejercicio 3.2:
por ao.
A PARTADO A )
Calculemos la disponibilidad:
A>
365 24 10
= A > 0.99886
365 24
99
A PARTADO B )
Con un MTTR = 24h, podemos despejar el MTTF necesario utilizando la A calculada
en el apartado anterior:
MTTF
MTTF (1 0.99886) = 24 0.99886
MTTF + 24
24 0.99886
MTTF =
21028.6316 horas ( 2.5 aos)
1 0.99886
0.99886 =
A PARTADO C )
Calculemos la disponibilidad de un nico equipo
Ae =
2000
0.98814
2000 + 24
0.99886 1 (1 0.98814)n
(1 0.98814)n 1 0.99886
n log(1 0.98814) log(1 0.99886)
n 1.52
Como buscamos el mnimo n tal que cumpla esa desigualdad y n N = n = 2.
1500 1000
0.9917
1505 1005
100
Ejercicio 3.4: Los datos de disponibilidad de cada uno de los componentes de la red de la
entidad financiera descrita en el problema nmero 8 del Tema 2 (2.8) son los siguientes:
MTTF del multiplexor: 2000 h.
MTTF del servidor: 2000 h.
MTTF de cada terminal remoto: 1000 h.
MTTF de la lnea de comunicaciones del terminal remoto: 500 horas.
MTTR de todos los elementos: 5 horas.
Suponiendo la existencia de dos nicos terminales remotos, realizar el diagrama de bloques
de disponibilidad y calcular la disponibilidad global del sistema.
Aqu hay que interpretar un poco el problema5 , lo que yo entiendo es un esquema como
el de la figura III.1.
1000
500
20000
=
0.9852
1000 + 5 500 + 5
20301
De los clientes:
AClientes = 1 (1 0.9852)2 0.9998
Del multiplexor y el servidor:6
AMUL =
2000
2000
=
0.9975
2000 + 5
2005
De la red:
Juntndolo todo obtenemos lo siguiente:
A = 0.9998 0.9975 0.9975 0.9948
5
6
se aceptan crticas.
que tienen el mismo MTTF.
101
Ejercicio 3.5: Un servidor de fecha y hora de una red se compone de dos elementos, que
deben estar operativos para atender el servicio: Un ordenador, que satisface las peticiones,
y un receptor de seales horarias externo, que permite obtener la hora exacta. Si ambos
equipos tienen un MTTF de 1500 horas, calcular el MTTR mnimo que debemos considerar,
supuesto igual en ambos, si se desea una disponibilidad total del servicio mayor del 99 %.
1500
1500
> 0.99
1500 + MTTR 1500 + MTTR
15002 > 0.99 (1500 + MTTR)2
15002
15002 102
=
> 15002 + 3000 MTTR + MTTR2
0.99
99
100
2
+ 3000 MTTR + MTTR2
0 > 1500 1
99
100
99 )
3000 3015.1134
2
Ejercicio 3.6: Un servicio que debe tener una disponibilidad mnima de 0.99 se debe
proporcionar con un sistema cuyo tiempo medio hasta el fallo es de 2000 horas.
a) Calcular el tiempo medio para reparar el equipo que es necesario para satisfacer la
disponibilidad solicitada.
b) Al comenzar con la explotacin del servicio se descubre que el programa que lo
implementa tiene fallos que hacen que en ocasiones se bloquee, dejando de atender peticiones.
Para resolverlo es necesario detener el proceso y volverlo a arrancar. Se ha estimado que en
media se produce un fallo cada dos das. El fallo se tarda en descubrir un promedio de 5 min.
y la reiniciacin del proceso requiere, tambin en promedio, 7 min. Calcular la disponibilidad
del sistema considerando este efecto.
c) Suponiendo imposible modificar el programa o cambiar el equipo, proponer una
alternativa que permita, en las nuevas circunstancias, satisfacer el requerimiento inicial
de disponibilidad.
A PARTADO A )
102
A=
2000
2000
> 0.99
2000 > MTTR 20.20 > MTTR
2000 + MTTR
0.99
2000
0.99585 2000
MTTR =
2000 11.81 horas
2000 + MTTR
0.99
2000
0.99583 0.99... > 0.99
2000 + 11.818
Ejercicio 3.7: Una peticin que se procesa en un servidor web tiene que pasar por cuatro
clases de elementos distintos para su resolucin completa. Estos elementos son:
7
8
103
104
sage
A PARTADO C )
Hecho por Carolina.
Sabemos que
el tiempo medio entre fallos (MTBF) es 2000 horas,
el MTTR es de 100 horas.
Como MTTF = MTBF - MTTR:
MTTF
2000 100
19
=
=
MTBF
2000
20
1152167961
0.9001
AT =
1280000000
A=
sage
105
Ejercicio 3.8:
Cada uno de los elementos que componen el servidor de transacciones
descrito en el problema nmero 15 del Tema 2 (2.15) se ejecuta en un ordenador
independiente que tiene un MTTF de 4000 horas. Calcular el MTTR necesario para
garantizar una disponibilidad del sistema total del 99.9 %.
Tenemos:
Aproceso = ADB =
4000
4000 + MTTR
Debido a que hay un bucle, hay que tener en cuenta cuntas vueltas se dan para calcular
la disponibilidad total media:
Si se da una vuelta: AT = A con probabilidad (1 q)
Si se dan dos vueltas: AT = A3 con probabilidad q(1 q)
Si se dan tres vueltas: AT = A5 con probabilidad q 2 (1 q)
etc.
Luego
E (AT ) =
A2n1 q n1 (1 q)
n=1
A(1 q)
1 A2 q
106
4000
999
horas, en funcin
Ejercicio 3.9:
Comparar desde el punto de vista de disponibilidad las dos soluciones
propuestas en el problema nmero 18 del Tema 2 (2.18) para resolver un cuello de botella en
acceso a disco. Suponer que todos los discos empleados tienen los mismos MTTF y MTTR,
y justifique qu alternativa es ms fiable calculando y comparando las disponibilidades en
ambos casos.
MTTF
MTTR + MTTF
este monstruo
107
Como sabemos que Aa < 1, tenemos que 2Aa > 1 y por lo tanto Ab = Aa (2Aa ) > Aa ,
as que, tal y como habamos dicho al principio, la solucin con dos discos en paralelo
es mejor.
2000
= MTTR = 89.579 horas
2000 + MTTR
108
La disponibilidad de un equipo es
Ae =
MTTF
4000
=
0.9881
MTTF + MTTR
4048
, luego si ponemos dos equipos en paralelo para la capa de presentacin tenemos que
Apres = 1 (1 Ae )2 0.9998
A PARTADO B )
Seguro que los fallos son por usar Glassfish.
La disponibilidad del software del servidor de aplicaciones ser
Asof t =
24 7
0.9970
24 7 + 0.5
A PARTADO C )
Aqu seguimos teniendo el MTTF de 4000 horas, aunque el MTTR cambia al usar un
cluster. El MTTR en este caso es la suma de todos los tiempos que nos dicen, luego
MTTR = 2.5083 horas. Por lo tanto, la disponibilidad ser
ADB =
4000
MTTF
=
0.9993
MTTF + MTTR
4002.5083
A PARTADO D )
De nuevo tenemos que recalcular el MTTR, sumando bsicamente. MTTR = 0.0011
horas. Por lo tanto, la disponibilidad ser
Adist =
MTTF
4000
=
0.9999
MTTF + MTTR
4000.0011
A PARTADO E )
Simplemente hacemos el producto de todo:
A = Adist Apres Aapp ADB 0.9999 0.9998 0.9997 0.9993 = 0.9987
110
ndice alfabtico
APIs directas, 4
Apollo RPC, 8
Balanceador de carga, 90
Clusters
de alta disponibilidad, 81
de alto rendimiento, 81
CO, 80
Coeficiente
cuadrtico de variacin, 46
Continuous
Operation, 80
CORBA, 18
DAP, 22
DCE, 20
DCOM, 18, 20
DDE, 20
Disponibilidad, 79
DSA, 22
DSP, 22
DUA, 22
Elasticidad, 80
EtherChannels, 89
Factor
de utilizacin, 45
Fail-back, 86
Fail-over, 86
Fiabilidad, 80
Flash Copy, 92
funcin de tasa de fallo, 82
HA, 79
Heartbeat, 93
High
Availability, 79
IBM Sphere MQ, 14
IDL, 19
Intensidad
de trfico, 45
LDAP, 23
Mantenibilidad, 80
Marshalling, 7
Microsoft COM, 19
Middleware, 3
MIDL, 20
MOM, 14
MSMQ, 20
MTS, 20
Nmero medio
de clientes en cola, 45
de clientes en el sistema, 45
namespaces, 21
NDR, 9
Network Operating System, 3
NIDL, 9
NTLMP, 20
NTP, 24
OASIS, 9
OLE, 20
OMA, 18
OMG, 18
operaciones de RPC idempotentes, 7
ORB, 18
OSPF, 89
PortMapper, 7
Recovery
Point Objective, 96
Time Objective, 96
Recuperacin
ante desastres, 81
Red
de colas abiertas, 47
Reliability, 80
Resiliencia, 80
Resiliency, 80
REST, 12
RM-ODP, 3
111
RPO, 96
RTO, 96
SAM, 20
SCM, 20
Serviceability, 80
Single Point Of Failure, SPOF, 86
Sistemas
tolerantes a fallos, 80
SOAP, 10
Stub, 6
Sun RPC, 8
Tasa
de llegadas, 45
de servicio, 45
Teorema
de Burke, 47
de Jackson, 47
de Little, 45
Tiempo medio
de reparacin/recuperacin, 81
entre fallos, 81
hasta el fallo, 81
timer ticks, 23
tolerancia mnima de reloj, 25
UDDI, 11
Unmarhsalling, 7
URI, 13
UTC, 23
VRRP, 89
WADL, 13
WSDL, 11
WSRL, 9
X.500, 22
XDR, 8
XDS, 22
112