Want to create interactive content? It’s easy in Genially!
Sistemas Distribuídos basados en Coordinación
MARIA XIMENA OLVERA MATA
Created on May 16, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Higher Education Presentation
View
Psychedelic Presentation
View
Vaporwave presentation
View
Geniaflix Presentation
View
Vintage Mosaic Presentation
View
Modern Zen Presentation
View
Newspaper Presentation
Transcript
SISTEMAS DISTRIBUIDOS BASADOS EN COORDINACIÓN
Olvera Mata Maria XimenaPerez Ramirez Jose de Jesus Mitzy
Concepto
Un sistema distribuido basado en coordinación tene como objetvo la cooperación y lacomunicación entre componentes (servicios, objetos, módulos) del sistema distribuido. Estos tipos de sistemas poseen una taxonomía (estructura) para su funcionamiento que se puede aplicar deforma general otros sistemas. Esta taxonomía se basa en dos tpos de desacoplamiento para realizar la coordinación
- Desacoplamiento temporal" Este tpo de desacoplamiento se da cuando se requiere quelos componentes que intervienen en una determinada tarea o actividad estan enfuncionamiento.
- Desacoplamiento referencial" Este tipo de desacoplamiento se da cuando no se requiereque los componentes que intervienen en una determinada tarea o actividad estan enfuncionamiento.
El siguiente cuadro explica la taxonomía que se debe implementar dependiendo el sistema:
Directa Coordinación directa los procesos deben estar funcionando y se conocen.
Buzon de correo Coordinación de Buzon de Correo No se requiere que los procesos que se están comunicando funcionen al mismo tiempo para que funcione la comunicación. Ésta ocurre colocando los mensajes en un buzón de correo (posiblemente compartido). En la comunicación es necesario referirse al buzón de correo que mantendrá los mensajes a ser intercambiados.
Orientada a reunion Coordinación orientada a reunión los procesos no se conocen entre sí. Existe un concepto de reunión en la cual los procesos se agrupan temporalmente para coordinar sus actividades. Según este modelo los procesos sí deben estarse ejecutando al mismo tiempo. Un tipo de sistemas de publicación/suscripción caen dentro de esta categoría
Generativa Comunicación Generativa Un conjunto de procesos independientes utilizan un espacio de datos persistente, compartido, conformado por tuplas. Las tuplas son registros de datos etiquetados compuestos por varios campos de entrada Las etiquetas sirven para distinguir entre tuplas que representan diferentes clases de información
Arquitectura Desde sus comienzos el proyecto JINI (actualmente se conoce como Apache River) que estábasado en el lenguaje java es pionero en este tipo de sistemas brindando una arquitectura queresolvió los principales problemas de las arquitecturas modernas SOA debido a que JINI basa suarquitectura en la flexibilidad y el desacoplamiento de los servicios que se puede ofrecer unsistema distribuido
ARQUITECTURA GENERAL
Un elemento de datos está publicado cuando se coloca a disposición de otros procesos para su lectura. Mediante una subscripción, el subscriptor informa al sistema las características de aquellos elementos de datos que son de su interés. Tal descripción se compone de los pares (atributo, valor) posiblemente combinados con pares (atributo, rango). Las descripciones a veces pueden darse utilizando varias clases de predicados formulados sobre los atributos. Se supone que cada elemento de datos tiene un vector asociado <(a1,v1),(a2,v2),(a3,v3). > de pares (atributo, valor). En este tipo de sistemas es importante cómo se implemente la coincidencia de suscripciones.
Arquitectura Tradicional
Jini y JavaSpaces Jini es un sistema distribuido que implementa un modelo de coordinación de comunicación generativa. Está fuertemente relacionado con Java, aunque muchos de sus principios se pueden implementar en otros lenguajes. Ofrece desacoplamiento temporal y referencial de procesos mediante un sistema de Coordinación llamado JavaSpaces. Un JavaSpace es un espacio de datos compartido que guarda tuplas que representan un conjunto de referencias a objetos Java. En un sistema Jini pueden coexistir múltiples JavaSpaces. Las tuplas se guardan en forma serializada (se empaqueta la tupla y sus campos) Una tupla se coloca en un JavaSpace por medio de una operación write, que empaqueta primero la tupla antes de guardarla.
Arquitectura Tradicional
TIB/Rendezvous Una solución al uso de servidores centrales es diseminar de inmediato los elementos de datos publicados a los suscriptores apropiados mediante multitransmisión (TIB/Rendezvous). En este sistema un elemento de datos es un mensaje etiquetado con una palabra clave compuesta que describe su contenido. Cada servidor ejecutará un dominio rendezvous, que se encarga de que los mensajes sean enviados y entregados de acuerdo con el tema. Siempre que se publica un mensaje, se multitransmite a cada servidor de la red que ejecuta un demonio rendezvous. Los procesos suscritos a un tema transfieren su suscripción a un demonio local. Éste construye una tabla de entradas (proceso, tema).
Arquitectura Tradicional
Arquitecturas Punto a Punto Son sistemas de publicación/suscripción en los cuales los eventos que se publican son re-dirigidos sólo a los nodos que se han suscrito previamente a dicho evento. Las suscripciones pueden variar desde la especificación de un simple atributo o evento hasta la especificación de un rango de valores.
Movilidad y Coordinación
Lime En el caso de comunicación generativa, se han propuesto varias soluciones para operar un espacio de datos compartido donde todos/algunos de los nodos son móviles. Un ejemplo de estos sistemas es Lime. Cada proceso tiene su propio espacio de datos asociado, pero cuando los procesos están próximos entre sí (conectados), sus espacios de datos se vuelven compartidos. Si hay un espacio de datos compartidos de forma transitoria los procesos pueden intercambiar tuplas El espacio de datos compartidos, está distribuido, pero esto es transparente para los procesos participantes. Lime también permite romper con esta transparencia y especificar para qué proceso va el mensaje. Las operaciones read y take pueden tener un parámetro adicional que especifique de qué proceso se espera una tupla.
procesos
Discovery Por medio de este protocolo es como un cliente puede encontrar un servicio de Lookup en la red local, ya sea cuando se registra por primera vez o cuando solicita algún servicio. Una vez que algún servicio ha detectado el servicio de Lookup entonces empieza un nuevo protocolo llamado join por medio del cual el dispositivo se une a la comunidad y da a conocer sus servicios. Entre los protocolos discovery tenemos: Protocolo Multicast de Solicitud: Permite a un servicio que acaba de ingresar a la red localizar un servicio de Lookup. Protocolo Multicast de Anuncio: Permite a un servicio de Lookup anunciar su presencia cuando acaba de ser dado de alta en la red. Protocolo Unicast de Descubrimiento: Este protocolo se utiliza cuando el servicio que se va a registrar ya conoce con anterioridad el nombre del servicio Lookup
procesos
Publicación/Suscripción Sistemas de Publicación/Suscripción En la mayoría de estos sistemas la comunicación es relativamente simple, por ejemplo en casi todos los sistemas basados en Java, toda la comunicación se realiza mediante invocaciones a métodos remotos. Un problema: los datos publicados deben llegar sólo a los suscriptores. Una solución puede ser la organización de los nodos presentes en un sistema punto-punto, después de lo cual la diseminación ocurre por grupo.
Enrutamiento basado en contenido Se supone que el sistema está construido encima de una red punto-punto en la cual los mensajes son explícitamente direccionados entre los nodos. Es crucial que los enrutadores sean capaces de tomar decisiones, utilizando el contenido del mensaje. En otras palabras cada mensaje porta una descripción de su contenido. Esta descripción puede utilizarse para interrumpir rutas que no conducen a receptores interesados. Podemos afinar las capacidades de los enrutadores para decidir a donde van los mensajes. Cada servidor transmite su suscripción a través de la red de modo que los enrutadores puedan componer filtros de almacenamiento.
Asignación de nombres Asignación En los directorios y sistemas de archivos de Solaris, los nombres pueden tener hasta 255 caracteres, muchos más que los permitidos por el estándar 8.3 del sistema operativo MS-DOS. Mientras que los usuarios de Windows NT Workstation y Windows NT Server pueden ver los nombres de archivo largos de Solaris en un directorio de SunLink Server, los usuarios de clientes Windows para trabajo en grupo (que incluye la convención de asignación de nombres 8.3 del MS-DOS) no pueden. Para garantizar el acceso a los archivos Solaris por parte de todos los usuarios, el programa SunLink Server proporciona la función de asignación de nombres, por la que cada archivo o directorio cuyo nombre no sea conforme con la norma 8.3 del MS-DOS, recibe automáticamente otro nombre que sí se ajusta a esta norma.
Reglas de asignación - Se eliminan los espacios del nombre. - Se eliminan todos los puntos excepto el último, que debe ir seguido de, al menos, un carácter. - Los caracteres no permitidos se sustituyen por caracteres de subrayado (_). - El nombre, sin incluir el sufijo se trunca y se le agrega una tilde (~) de separación y una combinación de números (0 - 9) y (A - Z). - El sufijo (los caracteres que siguen a la tilde) se trunca con tres caracteres. - La transformación de nombres de archivos de Solaris en nombres para Windows NT utiliza las siguientes reglas predeterminadas: - Los caracteres no permitidos se sustituyen por caracteres de subrayado (_). - Se mantiene la extensión.
Sincronización Relojes físicos Cuando utilizamos una base de tiempo Universal, se dice que utilizamos Relojes Físicos. Son útiles en aplicaciones que se manejan eventos secuenciados a alta velocidad, de tal suerte que no hay recursos disponibles para organizar la sincronización; En ciertos sistemas (por ejemplo, los sistemas de tiempo real), es importante la hora real del reloj. Para estos sistemas se necesitan relojes fisicos externos
Relojes lógicos La idea de un reloj lógico consiste en crear un sistema de convergencia del tiempo mediante la medición de las derivas, de tal suerte que la noción de tiempo universal se sustituye por la noción de un tiempoo global auto-ajustable.
Modelos de consistencia -CONSISTENCIA ESTRICTA -CONSISTENCIA SECUENCIAL -CONSISTENCIA LINEALIZABLE -CONSISTENCIA CAUSAL -CONSISTENCIA FIFO
Replicación – Los datos se replican para aumentar la disponibilidad o el rendimiento. – Un aspecto fundamental es la consistencia entre las réplicas: cuando se actualiza una copia, se deben actualizar también las demás. – La replicación está muy relacionada con la escalabilidad. Replicación en un sistema distribuido: – Concurrencia (múltiples procesos ejecutados simultáneamente y que pueden interactuar entre sí) : se debe considerar como controlarla en el acceso a un objeto por parte de diferentes clientes. – Si un objeto tiene más de una réplica, las operaciones deben realizarse en determinado orden en cada réplica.
CONCLUSION La última unidad es sobre usos y tendencias de los sistemas distribuidos la alta disponibilidad se logra mediante redundancia. La tolerancia a fallas es relativamente fácil de implementar considerando que los servidores no almacenan estado y la naturaleza estática del contenido provisto. Los sistemas basados en la web han hecho que las aplicaciones lleguen a ser más populares con los usuarios finales aunque los usuarios perciben una arquitectura C/S, los sitios web modernos están organizados a lo largo de arquitecturas de varios niveles, donde un componente final es responsable de generar páginas XML o HTML como respuesta que pueden presentarse al cliente.
¡Muchas gracias!
>
<