Documentos de Académico
Documentos de Profesional
Documentos de Cultura
APLICACIONES DISTRIBUIDAS
01/04/2019
DEBERES
CLASES.
PARTICIPACIÓN EN CLASE.
- Prepararse, leer el capítulo del libro o busca en internet sobre lo que se trata la clase, el
silabo está a su disposición.
- La nota: participación en clase, participación en los foros (Al menos cinco veces).
- Responder a la encuesta de participación en clase.
Proyectos
- Dos proyectos
o Hay un mes de tiempo para acabar.
- Entregables.
o Loogbook. (registrar las actividades que se realizó en el proyecto); la calificación
dependerá de lo bien documentado de las actividades realizadas.
o Informe (contiene máximo dos hojas, es un resumen del proyecto):
Cuál es el desafió más grande qué afrontaron en realizar el proyecto y
como lo manejaron.
Que nota merecen y por qué.
Evaluar la experiencia de aprendizaje.
o Código.
- Se trabajara en dos áreas.
o Aplicaciones con sockets. (mini Saew)
o Aplicaciones con Web Services.
PRUEBAS ACUMULATIVAS
Parte teórica.
Parte práctica. (resolver un problema.)
Son acumulativas.
Políticas
deber##_NombreA_NombreB
Entregables
En la parte superior izquierda de la primera hoja deben especificar. (lo mismo de siempre.)
En el código.
o Deber##
o Tu nombre va aquí
o Fecha de realización: xx/xx/xxx
o Fecha de entrega: xx/xx/xxxx
o Resultados:
Bibliografía.
Primer Deber.
Lo de la carpeta de cartón.
Parte Dos.
Ultimo Deber.
¿Porque distribuir?
¿Separación funcional?
Capacidades de los PC
o Clientes vs servidores
o Recolección de datos vs procesamiento de datos
Distribución inherente
o Información, personas, sistemas de inventarios
Distribución y balanceo de carga
o Rendimiento
Compartir recursos:
o Capacidad de procesamiento insuperable
Robustez (si se cae una parte los otros equipos van a seguir funcionando.)
Economía
Definición
Consecuencias de distribuir
Dibujito.
Conjunto de equipos, cada uno con su hardware y S.O, el objetivo es que puedan pasar mensajes
entre ellos para coordinar.
Middleware, independientemente del S.O. que tengamos las distintas maquinas puedan
comunicarse entre sí.
Accesibilidad.
Suposiciones falsas:
o Red confiable
o Red segura
o Red homogénea
o Topología estática
o Latencia nula
o Ancho de banda infinito
o Único administrador
Ejemplos.
Internet
o Red heterogénea dePCs.
o Aplicaciones se comunican usando mensajes.
o Servicios abiertos
Sistemas Multimedia Distribuidos.
o Emplean infraestructura de Internet.
o Tienen fuentes y sumideros de datos que requieren sincronización en tiempo real.
o Multicast
o Ejemplos:
Video conferencias
Audio y video por demanda
Herramientas de enseñanza a distancia
- Intranets:
o Porción del Internet
o Aislada del Internet.
o Administrada localmente.
o Usualmente propietaria.
o Ofrece varios servicios:
Compartición de archivos.
Firewalls para protección de red.
- Computación Móvil
o Realización de tareas
o Mientras el usuario “está en movimiento”.
Portabilidad y habilidad de conectarse a redes en diferentes lugares ha
hecho posible “mobile (normadic) computing”.
o Varios tipos de dispositivos:
o Laptops, PDAs, teléfonos móviles, etc.
o Dispositivos embebidos en otros aparatos como refrigeradoras o microondas.
Sistemas embebidos:
- EverQuest
- World of Warcraft
- FinalFantasy
- Sistema económico
- Social
Tipos de sistemas distribuidos
Retos: Heterogeneidad
Se aplica a:
Redes
Hardware
Sistemas operativos
Lenguajes de programación
Diferentes lenguajes de programación
Diferentes lenguajes de programación
o cada lenguaje tiene sus propias particularidades
Programas escritos por diferentes programadores
o No pueden interactuar a menos que sigan estándares comunes.
Middleware:
o Capa de software que provee una abstracción de programación
o Puede enmascarar la heterogeneidad de la red.
o Se implementa sobre los protocolos de internet.
05/04/2019
Código Móvil:
Puede enviarse desde un PC y ejecutarse en el destino.
o Applets de JAVA
o Controles ActiveX
El set de instrucciones de un PC depende del hardware, por lo que el código máquina para
un tipo de PC no se ejecutará en otro tipo.
o Solución: máquina virtual
JVM
.NET Framework
Sistema Cerrado:
Sistema Abierto:
Visión de servicio.
Estándares compartidos.
Interfaces de mensajes bien definidas.
Interoperabilidad y portabilidad.
Publicados.
Retos: Seguridad
Tres componentes:
Confidencialidad
o Protección de individuos no autorizados
Integridad
o Protección contra alteración o corrupción
Disponibilidad
o Protección contra interferencias con respecto al acceso de los recursos
Restos: Escalabilidad
Sistema Escalable
Posibles retos:
Técnicas de escalamiento
Capacidad limitada
Tres técnicas:
Ocultar latencia
Distribuir
Replicar Caché
Retos: Transparencia.
TRANSPARENCIA Y DESCRIPCION.
Concurrencia: Permitir que varios procesos operen de forma concurrente usando recursos
compartidos sin interferir entre ellos.
Fallos: Permitir que usuarios y clientes puedan concluir sus tareas sin importar las fallas de
componentes.
Movilidad: Permitir el movimiento de recursos y clientes dentro del sistema sin afectar la
operación de usuarios o programas.
Rendimiento: Permitir que el sistema sea reconfigurado para mejorar el rendimiento cuando la
carga varía.
Escalamiento: Permitir que el sistema y las aplicaciones escalen sin cambiar la estructura del
sistema o los algoritmos de la aplicación.
Retos: Calidad de Servicio.
Recursos Compartidos
Algoritmos Distribuidos
Balanceo de Carga
Objetivos:
Mejorar elthroughput. Reducir la latencia percibida por el usuario. Necesario debido a: Alto
tráfico de red Tasa alta de pedidos Alta carga computacional Cola de un banco: cómo podría
reducirse eltiempo de espera para ser atendido?
Control de Concurrencia
Recursos compartidos.
o Varios clientes intentan acceder a recursos compartidos al mismo tiempo.
Opciones:
o Un proceso toma una orden a la ver.▪Limita elthroughput. Procesamiento
concurrente.▪Posibles inconsistencias.
Ejemplo: Sistema de Apuestas.
Bloqueo
Bloque Exclusivo:
o Bloquear acceso a un objeto.
o Si se quiere acceder al recurso bloqueado, la solicitud se suspende y se debe
esperar a que el objeto este desbloqueado.
o Idea similar a la de un cajero, mientras el cajero atiende una solicitud está
bloqueado, no atiende a otro usuario.
Deadlock
Los bloqueos pueden provocar una muerte por bloqueos: Estado en el cual cada miembro de un
grupo espera por otro miembro para liberar un bloqueo.
Soluciones:
o Timeouts:
o Cada bloqueo tiene un periodo de tiempo en el cual es invulnerable, luego de lo
cual es vulnerable.
o Prevención:
Bloquear todos los recursos cuando un miembro necesita un recurso.
o Detección:
Detectar el deadlock, y seleccionar la cancelación de operación de
miembros para romper el ciclo.
2019/04/08
Sistemas distribuidos
Hilos y Procesos
Clase Descripción
Interlocked Ofrece operaciones atómicas para tipos
compartidos por múltiples hilos
Monitor Provee sincronización usando bloqueos y
señales de espera.
Mutex Permite sincronización entre límites de
AppDomain.
Semaphore Permite limitar el número de hilos que pueden
acceder aun recurso.
Thread Permite crear hilos adicionales en el
AppDomainoriginal.
Timer Provee un mecanismo para ejecutar un
método a intervalos de tiempo.
Clase Thread
Ofrece funcionalidad para trabajar con hilos.
Falta cuadro
Dibujito de hilos
Compartir Datos
Para compartir datos se puede usar: Referencias a objetos. Campos estáticos.▪Pueden provocar
funcionamiento inesperado si no setratan con cuidado.
Asegura que los hilos que están esperando o bloqueados no consuman tiempo de
procesador.
Región de 10 ms
Usos
Programación paralela.
Aplicaciones distribuidas.
Creación de hilos
Los hilos se crean mediante el constructor de la clase Thread.
Métodos anónimos.
Expresiones Lambda.
Pasando argumentos al método Start().
o El delegado acepta como argumento un objeto tipo object.
o Debe realizarse casting.
Hilos Foreground:
Sincronización
Bloqueo
Desbloqueo sucede:
Spinning
Un hilo debe pausarse hasta que una condición se cumpla.
Spinning.
Bloqueo exclusivo
El bloqueo exclusivo asegura que sólo un hilo pueda acceder a un recurso compartido.
Opciones:
o Lock
o Mutex
¿Cuándo es necesario?
Gráfico 2
Lock()
Bloquear el código que está generando el problema, solo lectura, estático, B valdria cero entonces
no entra al if y ya no se produce el problema.
Monitor
¿Cuándo bloquear?
Mutex
Similar alock.
Si el objeto Mutexes cerrado o eliminado (dispose), selibera el recurso. Sólo se puede liberar
desde el hilo/proceso que realizóel bloqueo. Uso primario deMutexentre procesos: Asegurar que
sólo una instancia del programa puedaejecutarse al mismo tiempo.
Semáforos.
Similar alock/Mutex.
Comparación:
practica01