Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Distribuidos ., ESTILOS (MODELOS) ARQUITECTÓNICOS,…
Sistemas Distribuidos
.
ESTILOS (MODELOS) ARQUITECTÓNICOS
Arquitectura
La organización lógica del sistema distribuido en componentes de software también se conocida como arquitectura de software. La investigación sobre la arquitectura de software se ha tenido cambiosadecuadamente, actualmente es muy común aceptar que el diseño o la adopción de una arquitectura resulta crucial para el desarrollo exitoso de sistemas. Por medio de componentes y conectores podemos lograr varias opciones de configurarlo, las cuales se califican en estilo arquitectónicos
arquitectura en capaz
Al pasar de los años , el modelo cliente-servidor ha estado sujeto a muchos debates y controversias. Una de la pregunta que establecieron una diferencia entre un cliente y unm servidor. Por ejemplo, un servidor para una base de datos distribuida puede actuar continuamente como un cliente,
ya que reenvía solicitudes a diferentes servidores de archivos responsables de implementar las tablas de la base de datos.En tal caso, el propio servidor de la base de datos no hace más que procesar consultas
Arquitecturas
centradas en datos
evolucionaron alrededor de la idea de que los procesos se comunican a través de un repositorio común (activo o pasivo). Se argumentar que, para sistemas distribuidos, estas arquitecturas son tan importantes como las basadas en capas y objetos.
Arquitecturas basadas en
eventos
Los procesos se comunican básicamente a través de la propagación de eventos, los que opcionalmente transportan datos, como ilustra la figura 2-2(a).Para sistemas distribuidos, la propagación de eventos se ha asociado con lo que se conoce como sistemas de publicación-suscripción.
procesos
En el concepto de proceso tiene su origen en el campo de los sistemas operativos en general se define como un programa en ejecución. Que, desde la perspectiva de un sistema operativo, la cual administra y la calendariza los procesos son quizá los asuntos más importantes.
uso de hilos en sistemas no distribuidos
el principal beneficio proviene de que, en un proceso con un único hilo de control, siempre que se ejecuta una llamada de sistema se bloquea el proceso como un todo.Una propiedad importante de un programa de hoja de cálculo es que mantiene las dependencias funcionales entre las diferentes llamadas, con frecuencia desde diferentes hojas de cálculo
implementacion de hilo
los hilos son proporcionados en la forma de un paquete de hilos. Dicho paquete contiene operaciones para crear y destruir hilos, así como operaciones con respecto a la sincronización de variables tales como los mútex y las variables de condición. Existen básicamente dos métodos para implementar un paquete de hilos
hilos
la práctica indica que la granularidad de los procesos, como tal es proporcionada por los sistemas operativos en los cuales los sistemas distribuidos son construidos, pero esto no es suficiente. En lugar de ello, resulta que tener un mayor grado de granularidad en la forma de múltiples hilos de control por proceso vuelve mucho más fácil construir aplicaciones distribuidas y obtener un mejor rendimiento
comunicacion
La comunicación entre procesos se encuentra en el núcleo de todos los sistemas distribuidos. No tiene sentido estudiar los sistemas distribuidos, sin examinar cuidadosamente las formas en que los procesos desarrollados en diferentes máquinas pueden intercambiar información. En los sistemas distribuidos, la comunicación siempre se basa en el paso de mensajes de bajo nivel, tal como lo ofrece la red subyacente.
LLAMADAS A
PROCEDIMIENTOS
Las llamadas a procedimientos remotos y las invocaciones a objetos remotos contribuyen a ocultar la comunicación, es decir, mejoran la transparencia de acceso. Por desgracia, ningún mecanismo es siempre adecuado
COMUNICACIÓN ORIENTADA A
MENSAJES
Muchos sistemas distribuidos se han basado en el intercambio explícito de mensajes entre procesos. Sin embargo, los procedimientos send y receive no ocultan en absoluto la comunicación, lo cual es importante para lograr la transparencia en los sistemas distribuidos. Este problema, se conoce desde hace mucho, pero poco se hizo hasta que un artículo escrito por Birrell y Nelson (1984) mostró una forma completamente diferente de manejar la comunicación.
FUNDAMENTOS
la comunicación en sistemas distribuidos, primero recapitularemos sobre algunas cuestiones fundamentales relacionadas con la comunicación. En la siguiente sección, analizaremos brevemente los protocolos de comunicación de redes, ya que constituyen la base para cualquier sistema distribuido. Después, aplicamos un enfoque diferente clasificando los diferentes tipos de comunicación que tienen lugar en los sistemas distribuidos.
nombres
Se utilizan para compartir recursos, para identificar entidades de manera única, para hacer referencia a ubicaciones, y más. Un asunto importante con respecto a los nombres es que un nombre puede resolverse para la entidad a la cual hace referencia.
NOMBRES, IDENTIFICADORES
Y DIRECCIONES
Líneas arriba explicamos que los identificadores son convenientes para representar a las entidades de manera única. En muchos casos, los identificadores son simplemente cadenas aleatorias de bits, a las cuales nos referimos convenientemente como nombres no estructurados o planos. Una propiedad importante de tales nombres es que no contienen información alguna con respecto a la ubicación del punto de acceso de su entidad asociada
nombres estructurados
Los nombres planos son buenos para las máquinas, pero por lo general no muy convenientes para uso de las personas. Como alternativa, los sistemas de nombres con frecuencia soportan nombres estructurados que están compuestos a partir de nombres sencillos y legibles para las personas. No solamente para los nombres de archivo, también en internet los servidores de nombres siguen este método
sincronizacon
La sincronización en sistemas distribuidos es con frecuencia mucho más difícil comparada con la sincronización en sistemas de un procesador o de multiprocesadores. Los problemas y soluciones que explicamos en este capítulo son, por su naturaleza,más generales y ocurren en muchas situaciones diferentes en sistemas distribuidos. Comenzamos con el análisis de un asunto de sincronización basado en tiempo real, seguido de la sincronización en la que sólo importan cuestiones de ordenamiento relativo en lugar del ordenamiento en tiempo absoluto.
SINCRONIZACIÓN DEL RELOJ
En un sistema centralizado, el tiempo no es ambiguo. Cuando un proceso quiere saber la hora, realiza una llamada de sistema y el núcleo se la dice. Si un proceso A pregunta la hora, y después un proceso B pregunta la hora, el valor que obtiene B será mayor que (o probablemente igual que) el valor que obtuvo A; con certeza no será menor. En un sistema distribuido, lograr un acuerdo con respecto al tiempo no es algo trivial.
reloj logico
la sincronización de relojes está naturalmente relacionada con el tiempo real. Sin embargo, también hemos visto que puede ser suficiente que cada nodo coincida con un tiempo actual, sin que el tiempo sea necesariamente el mismo que el tiempo real. Podemos ir un paso más adelante
exclusion mutua
Para los sistemas distribuidos resultan fundamentales la concurrencia y la colaboración entre diversos procesos. En muchos casos, esto significa también que los procesos necesitarán de acceso simultáneo a los mismos recursos. Para evitar que tales accesos concurrentes corrompan los recursos, o que los vuelvan inconsistentes, se necesita encontrar soluciones que garanticen que los procesos tengan acceso mutuamente exclusivo
Arquitecturas basadas
en objeto
Una organización bastante libre es la que siguen las arquitecturas basadas en objetos, la cual aparece en la figura 2-1(b). En esencia, cada objeto corresponde a lo que hemos definido comocomponente, y estos componentes se conectan a través de un mecanismo de llamadas a procedimientos (remotos). Sin ser sorprendente, esta arquitectura de software coincide con la arquitectura de sistemas cliente-servidor que describimos antes. La arquitectura basada en capas y la basada en objetos aún son los estilos más importantes utilizados para implementar grandes sistemas de software