
1. Confiabilidad
1.1. Los sistemas distribuidos deben de ser muy confiables. ya que si un componente se descompone otro componente debe ser capaz de reemplazarlo.
1.2. El tamaño puede ser variado
1.2.1. Decenas de hots
1.2.1.1. Local Area Network
1.2.2. centenas de hots
1.2.2.1. Metropolitan Area Network
1.2.3. miles y millones de hots
1.2.3.1. Internet
2. Desempeño
2.1. La idea base de los sistemas distribuidos es la de obtener sistemas mucho mas rápidos que los utilizados de procesador único.
2.2. Cuando se ejecuta una aplicación en un sistema distribuido no debe parecer peor que su ejecución en un único procesador pero esto es difícil de lograr.
2.2.1. Metricas
2.2.1.1. Tiempo de respuesta
2.2.1.2. Rendimiento
2.2.1.3. Uso de sistema y cantidad consumida de la capacidad de la red
2.3. Para optimizar el desempeño
2.3.1. Minimizar el número de mensajes
2.3.1.1. La dificultad es que la mejor forma de optimizar el desempeño es tener muchas actividades en ejecución, para eso se requiere el envío de muchos mensajes
2.3.2. Centralizar el trabajo en una sola maquina
2.3.2.1. Resulta poco apropiado para un sistema distribuido.
2.4. Tamaño de grano
2.4.1. Paralelismo de grano fino
2.4.1.1. Trabajos con un gran número de pequeños cálculos y mucha interacción con otros trabajos, debido a ello requieren mucha comunicación que puede afectar el desempeño.
2.4.2. Paralelismo de grano grueso
2.4.2.1. Corresponde a trabajos con grandes cálculos, poca interacción y pocos datos
3. Transparencia
3.1. es transparente cuando se presenta ante los usuarios como si fuera un sistema que corre en una sola computadora.
3.2. Clasificación
3.2.1. Transparencia de localización
3.2.2. Transparencia de escalabilidad
3.2.3. Transparencia de replicación
3.2.4. Transparencia de concurrencia
3.2.5. Transparencia de paralelismo
3.2.6. Transparencia de acceso
3.2.7. Transparencia de fallo
3.2.8. Transparencia de movilidad
3.2.9. Transparencia de rendimiento
3.3. Desafiós
3.3.1. Transacciones comerciales - fallo, seguridad y concurrencia
3.3.2. Google, P2P, DNS - escalabilidad y fallos
3.4. Ejemplo
3.4.1. Cuando se escribe en el navegador una pagina web lo primero que hace es traducir a una dirección IP, como existen millones se necesita una gran base de datos distribuida en varios nodos que están sujetos a "maquinas" que son capaces de traducir la información correctamente y así mandar a la dirección deseada.
4. Flexibilidad
4.1. Describe la capacidad para soportar cambios, actualizaciones y mejoras que permitan irse desarrollando al mismo ritmo de la evolución tecnologica
4.2. TIPOS
4.2.1. Núcleo monolitico
4.2.1.1. Estos sistemas tienen un núcleo grande y complejo, que engloba todos los servicios del sistema
4.2.1.2. Ejemplo: UNIX
4.2.2. Micro nucleo
4.2.2.1. Se basa en una programación altamente modular y tiene un tamaño mucho menor que el núcleo monolitico.
4.2.2.2. Amoeba, minix, hurd, NeXTSTEP
5. Escalabilidad
5.1. Un sistema es escalable si el aumento de demanda de servicios se puede suplir con una aportación de recursos, siempre y cuando el coste de añadir un usuario sea constante
5.2. Efectividad
5.2.1. Número de recursos
5.2.2. Número de usuarios
5.3. Puntos clave
5.3.1. Control de coste de los recursos
5.3.2. Prevención de desbordamiento de los recursos HW
5.3.2.1. Ejemplo: paso dse IPV4 a IPV6
5.3.3. Evitar cuellos de botella/perdidas de prestaciones
5.3.3.1. Algoritmos descentralizados
5.3.3.2. Replicación
5.3.3.3. Uso de cachés