miércoles, 16 de noviembre de 2016

PARADIGMAS DEL DESARROLLO DE SISTEMAS DISTRIBUIDOS

PARADIGMAS DEL DESARROLLO DE SISTEMAS DISTRIBUIDOS
PASO DE MENSAJES
La aproximación más básica a la comunicación entre procesos es el paso de mensajes. En este paradigma, los datos que representan mensajes se intercambian entre dos procesos, un emisor y un receptor.

El paso de mensajes es el paradigma fundamental para aplicaciones distribuidas. Un proceso envía un mensaje que representa una petición. El mensaje se entrega a un receptor, que procesa la petición y envía un mensaje como respuesta. En secuencia, la réplica puede disparar posteriores peticiones, que lleven a sucesivas respuestas, y así en adelante.

PARADIGMA CLIENTE-SERVIDOR

Quizás el más conocido de los paradigmas para aplicaciones de red, el modelo cliente-servidor asigna roles diferentes a los dos procesos que colaboran. Un proceso, el servidor interpreta el papel de proveedor de servicio, esperando de forma pasiva la llegada de peticiones. El otro, el cliente, invoca determinadas peticiones al servidor y aguarda sus respuestas. De una concepción simple, el modelo cliente-servidor proporciona una abstracción eficiente para facilitar servicios de red. Las operaciones necesarias incluyen aquellas que permiten a un proceso servidor escuchar y aceptar peticiones, y a un cliente solicitar dichas peticiones y aceptar las respuestas.

PARADIGMA DE IGUAL A IGUAL PEER-TO-PEER

En el paradigma cliente-servidor, los procesos participantes juegan diferentes roles: Los procesos cliente solicita peticiones mientras que los procesos servidores escuchan de forma pasiva para servir dichas peticiones y proporcionar los servicios solicitados en respuesta. Los procesos participantes interpretan los mismos papeles, con idénticas capacidades y responsabilidades. Cada participante puede solicitar una petición a cualquier otro participante y recibir una respuesta. Un ejemplo bien conocido de un servicio de transferencia de ficheros peer-to-peer servicios similares permiten la comparación de ficheros entre ordenadores a través de Internet.

PARADIGMA DE SISTEMA DE MENSAJES

El paradigma de Sistema de Mensajes es una elaboración del paradigma básico de paso de mensajes.
Middleware hace referencia al software que actúa como intermediario entre procesos independientes. En este paradigma, un sistema de mensajes sirve de intermediario entre procesos separados e independientes. El sistema de mensajes actúa como un conmutador para mensajes, a través del cual los procesos intercambian mensajes asíncronamente, de una forma desacoplada. Un emisor deposita un mensaje en el sistema de mensajes, el cual redirige el mismo a la cola de mensajes asociada a dicho receptor. Una vez que se ha enviado, el emisor queda liberado para que realice cualquier otra tarea.

PARADIGMA DE AGENTES MÓVILES

Un agente móvil es un programa u objeto transportable. En este paradigma, un agente se lanza desde un determinado ordenador. El agente entonces viaja de forma autónoma de un ordenador a otro de acuerdo a un itinerario que posee. En cada parada, el agente accede a los recursos o servicios necesarios  y realiza las tareas correspondientes para completar su misión. El paradigma ofrece la abstracción de programa u objeto transportable.

PARADIGMA DE SERVICIOS DE RED

En el paradigma mostrado los proveedores de servicios se registran en los servidores de directorio de una red. Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecución, y, si el servicio está disponible, al proceso se le dará una referencia a dicho servicio. Usando esta referencia, el proceso interinará con el servicio. El paradigma es esencialmente una extensión del paradigma de Invocación de Métodos Remotos. La diferencia es que los objetos de servicio se registran en un directorio global, permitiéndoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada. Idealmente, los servicios se pueden registrar y localizar usando un identificar único global, en cuyo caso el paradigma ofrece un nivel de abstracción extra: transparencia de localización.

PARADIGMA DE APLICACIONES COLABORATIVAS

En este modelo para trabajo cooperativo basado en ordenador, los procesos participan en grupo en una sesión colaborativa. Cada proceso participante puede hacer contribuciones a todos o parte del grupo. Los procesos pueden hacer eso, usando multidifusión para enviar los datos o usar pizarras o tablones virtuales, los cuales permiten a cada participante leer y escribir datos sobre una visualización compartida.
Para implementar el sistema de subastas usando el paradigma de groupware basado en mensajes, el subastador iniciará un grupo, al que se incorporarán los participantes interesados. 
citas consultadas 




miércoles, 28 de septiembre de 2016

MODELOS DE CONSISTENCIA CENTRADA
 AL CLIENTE
 
 
 
La consistencia centrada en el cliente: Se da un solo cliente una garantía acceso consistencia a un almacén de datos para ese cliente, no hay garantía para el acceso simultáneo por los diferentes clientes. El almacenamiento de datos se distribuye físicamente. Cuando un proceso accede al almacén de datos, en general, se conecta a la copia disponible en el sitio o la más cercana. Toda lectura y escritura se realizan en esta copia local. Las actualizaciones son posiblemente propagan a otras copias
 
Modelos de consistencia centrada al cliente:
Las lecturas monótonas
Escrito monótona
Lera sus escrituras
Escrituras siguen a lecturas 
 
MONOTONICO

LECTURA MONOTONICO
Se dice que un dato ofrece consistencia de lecturas monotónicas si y sólo si la siguiente condición se cumple: Si un proceso lee el valor de un ítem de dato x, cualquier operación de lectura sucesiva sobre x por el mismo proceso siempre retornará el mismo valor o un valor más reciente. Operaciones de lectura realizadas por un único proceso P sobre dos copias locales del almacenamiento de datos.
Si un proceso lee el valor de un elemento de datos X, cualquier operación  sucesiva de lectura X realizada por este mismo proceso siempre devolverá el mismo valor o un valor más reciente. Es decir, si una vio a un proceso de valor de X en el tiempo t, nunca verá una versión más antiguo X en un momento posterior.

Ejemplo: Base de datos distribuida de correo electrónico.



ESCRITURA MONOTONICO
Las escrituras deben ser propagadas en el orden correcto a todas las copias del almacenamiento de datos.  Se debe cumplir que:
Una operación de escritura por un proceso sobre un ítem de dato x es completada antes de cualquier otra operación de escritura sobre x por el mismo proceso.
Operaciones de escritura realizadas por un proceso P en dos copias locales del mismo almacén de datos.
Una operación de escritura realizada por un proceso en un elemento de datos X se completó antes de cualquier operación de escritura posterior sobre X el mismo proceso.
Completar un medio de operación de escritura que copian en el que una operación sucesiva se ejecuta refleja el efecto de una operación escritura anterior ejecutada por el mismo proceso, independientemente de donde esto ocurrió.
Ejemplo: la biblioteca de software.

LEA SUS ESCRITURAS
A veces es más importante garantizar que si yo escribo un dato, yo siempre vea el valor actualizado no importa de dónde haga la siguiente lectura, por lo tanto, un almacén de datos provee consistencia lea sus escrituras si se cumple que:
El efecto de una operación de escritura por un proceso sobre un ítem de dato x será siempre visto por las sucesivas operaciones de lectura sobre x por el mismo proceso.
Similar a lecturas monotónicas, sólo que esta vez la consistencia está garantizada por la última operación de escritura de P, en vez de la última operación de lectura. El efecto de una operación de escritura por un proceso en datos X elemento siempre ser visto por una operación de lectura sucesiva en el X mismo proceso. Es decir, una operación de escritura siempre se completa antes de una operación de lectura sucesivamente el mismo proceso, independientemente de donde se produce.

Ejemplo: se pueden producir errores contraseñas, páginas web se puede mostrar las páginas viejas, en caché

ESCRITURAS SIGUEN A LECTURAS
La idea de este esquema de consistencia es garantizar que si alguien va a modificar el valor de un dato, antes haya leído la última actualización de éste. Un almacén de datos provee consistencia de escrituras siguen lecturas si se cumple que:
Una operación de escritura de un proceso sobre un ítem de dato x realizada luego de leer ese dato x, se realizó garantizada mente sobre el valor más reciente de x.
Operaciones de escritura realizadas por un proceso P en dos copias locales del mismo almacén de datos
Esto asegura que una operación de escritura por un proceso en un elemento X de datos después de una operación de lectura anterior en la misma X proceso se produce por el mismo valor, o el valor más reciente de X que se ha leído. Es decir, cualquier escritura sucesiva operativo realizado por un proceso en un elemento de datos X se llevarán a cabo en una copia actualizada X con el valor leído en último lugar por este proceso.

Ejemplo: Grupo de discusión en una página.

 https://www.ppgia.pucpr.br/~alcides/Teaching/SistemasDistribuidos/ModConsisCliente.txt

modelos de consistencia centrada al cliente

MODELOS DE CONSISTENCIA CENTRADA
 AL CLIENTE
 
 
 
La consistencia centrada en el cliente: Se da un solo cliente una garantía acceso consistencia 
a un almacén de datos para ese cliente, no hay garantía para el acceso simultáneo por los diferentes clientes.
 El almacenamiento de datos se distribuye físicamente. 
Cuando un proceso accede al almacén de datos, en general, se conecta a la copia disponible en el sitio o la más cercana. 
Toda lectura y escritura se realizan en esta copia local. 
Las actualizaciones son posiblemente propagan a otras copias
 
Modelos de consistencia centrada al cliente:
Las lecturas monótonas
Escrito monótona
Lera sus escrituras
Escrituras siguen a lecturas 
 
MONOTONICO

LECTURA MONOTONICO
Se dice que un dato ofrece consistencia de lecturas monotónicas si y sólo si la siguiente condición se cumple: Si un proceso lee el valor de un ítem de dato x, cualquier operación de lectura sucesiva sobre x por el mismo proceso siempre retornará el mismo valor o un valor más reciente. Operaciones de lectura realizadas por un único proceso P sobre dos copias locales del almacenamiento de datos.
Si un proceso lee el valor de un elemento de datos X, cualquier operación  sucesiva de lectura X realizada por este mismo proceso siempre devolverá el mismo valor o un valor más reciente. Es decir, si una vio a un proceso de valor de X en el tiempo t, nunca verá una versión más antiguo X en un momento posterior.

Ejemplo: Base de datos distribuida de correo electrónico.



ESCRITURA MONOTONICO
Las escrituras deben ser propagadas en el orden correcto a todas las copias del almacenamiento de datos.  Se debe cumplir que:
Una operación de escritura por un proceso sobre un ítem de dato x es completada antes de cualquier otra operación de escritura sobre x por el mismo proceso.
Operaciones de escritura realizadas por un proceso P en dos copias locales del mismo almacén de datos.
Una operación de escritura realizada por un proceso en un elemento de datos X se completó antes de cualquier operación de escritura posterior sobre X el mismo proceso.
Completar un medio de operación de escritura que copian en el que una operación sucesiva se ejecuta refleja el efecto de una operación escritura anterior ejecutada por el mismo proceso, independientemente de donde esto ocurrió.
Ejemplo: la biblioteca de software.

LEA SUS ESCRITURAS
A veces es más importante garantizar que si yo escribo un dato, yo siempre vea el valor actualizado no importa de dónde haga la siguiente lectura, por lo tanto, un almacén de datos provee consistencia lea sus escrituras si se cumple que:
El efecto de una operación de escritura por un proceso sobre un ítem de dato x será siempre visto por las sucesivas operaciones de lectura sobre x por el mismo proceso.
Similar a lecturas monotónicas, sólo que esta vez la consistencia está garantizada por la última operación de escritura de P, en vez de la última operación de lectura. El efecto de una operación de escritura por un proceso en datos X elemento siempre ser visto por una operación de lectura sucesiva en el X mismo proceso. Es decir, una operación de escritura siempre se completa antes de una operación de lectura sucesivamente el mismo proceso, independientemente de donde se produce.

Ejemplo: se pueden producir errores contraseñas, páginas web se puede mostrar las páginas viejas, en caché

ESCRITURAS SIGUEN A LECTURAS
La idea de este esquema de consistencia es garantizar que si alguien va a modificar el valor de un dato, antes haya leído la última actualización de éste. Un almacén de datos provee consistencia de escrituras siguen lecturas si se cumple que:
Una operación de escritura de un proceso sobre un ítem de dato x realizada luego de leer ese dato x, se realizó garantizada mente sobre el valor más reciente de x.
Operaciones de escritura realizadas por un proceso P en dos copias locales del mismo almacén de datos
Esto asegura que una operación de escritura por un proceso en un elemento X de datos después de una operación de lectura anterior en la misma X proceso se produce por el mismo valor, o el valor más reciente de X que se ha leído. Es decir, cualquier escritura sucesiva operativo realizado por un proceso en un elemento de datos X se llevarán a cabo en una copia actualizada X con el valor leído en último lugar por este proceso.

Ejemplo: Grupo de discusión en una página.

miércoles, 21 de septiembre de 2016

modelos de consistencia

MODELO DE CONSISTENCIA
Un modelo de consistencia especifica las garantías de consistencia que un sistema de memoria compartida distribuida realiza sobre los valores que los procesos leen desde los objetos, dado que acceden sobre una réplica de cada objeto y que pueda manipular múltiples procesos ya que pueden actualizar los objetos.
Es normalmente un conjunto de procesos  que siguen una secuencia  sistema de memoria  compartida que su contenido se almacena en computadoras separadas.
Y cada proceso tiene un gestor de replica local, el cual esta encargado de mantener copias en cache para los objetivos.
Los datos se leen desde las replicas locales por cuestiones de rapidez para que así las actualizaciones deben extenderse al resto de los gestores de réplica.
Y también además de la gestión de cache una complementación de memoria compartida distribuida puede almacenar las actualizaciones y reducir los costes de comunicación mediante la extensión de múltiples actualizaciones a la vez.
MODELO DE CONSISTENCIA CENTRADA EN LOS DATOS
ESTRICTA
El modelo de consistencia más restrictivo es llamado consistencia estricta y es definido por la siguiente condición cualquier lectura sobre un ítem de dato X retorna un valor correspondiente con la más reciente escritura sobre X.
Este modelo asume la existencia de un reloj físico global.
SECUENCIAL
La consistencia secuencial es una forma ligeramente más débil de la consistencia estricta. Satisface la siguiente condición:
El resultado de una ejecución es el mismo si las operaciones de todos los procesos sobre el dato fueron ejecutadas en algún orden secuencial y las operaciones de cada proceso individual aparecen en esta operaciones de cada proceso individual aparecen en esta secuencia en el orden especificado por su programa.


CASUAL

El modelo de consistencia causal es un debilitamiento de la consistencia secuencial. Se hace una diferenciación entre eventos que están potencialmente relacionados en forma causal y aquellos que no. Las operaciones que no están casualmente relacionadas se dicen concurrentes.
La condición a cumplir para que unos datos sean casualmente consistentes es:
Escrituras que están potencialmente relacionadas en forma causal deben ser vistas por todos los procesos en el mismo orden. Escrituras concurrentes pueden ser vistas en un orden diferente sobre diferentes máquinas.
Esta secuencia es permitida con un almacenamiento casualmente consistente, pero no con un almacenamiento secuencial mente consistente o con un almacenamiento consistente en forma estricta. Esta secuencia es permitida con un almacenamiento casualmente consistente o con un almacenamiento consistente en forma estricta.


FUENTES DE INFORMACIÓN:


miércoles, 24 de agosto de 2016

COMO SURGEN LOS SISTEMAS DISTRIBUIDOS

Compartir recursos es uno de los principales motivos para construir sistemas distribuidos. En la construcción de sistemas distribuidos surgen desafíos como la heterogeneidad de sus componentes, su carácter abierto que permite que se pueden añadir o realizar componentes.
En el inicio de la era de la informática las computadoras eran grandes y caras. Debido a su escasez y coste, éstas funcionaban de forma independiente entre ellas.
A partir de los años 70, surgen los primeros miniordenadores, que competirían con los grandes ordenadores tanto por las prestaciones como por su precio, con lo que se extendió su uso. Los grandes sistemas centralizados fueron dejando paso lentamente a sistemas mucho más descentralizados, y formados por varios ordenadores o a sistemas multiprocesador. Pronto surgieron nuevas necesidades de interconexión de los equipos, y se desarrollaron las redes de área local, como Ethernet o Token ring. En la actualidad, Internet es la red de mayor tamaño y la más usada, y mantiene un impresionante ritmo de crecimiento. Además, Internet es la base de muchos nuevos proyectos de sistemas distribuidos.
Aunque los actuales sistemas de red solucionan parte de las necesidades actuales de comunicación entre computadoras, tienen importantes limitaciones, y no son aplicables a una gran cantidad de problemas. Por ello surge la necesidad de crear sistemas distribuidos que sustituyan a los actuales sistemas de red o a los sistemas multiplicadores.
Los sistemas distribuidos están basados en las ideas básicas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. Sin embargo estos aspectos son en parte contrarios, y por lo tanto los sistemas distribuidos han de cumplir en su diseño el compromiso de que todos los puntos anteriores sean solucionados de manera aceptable.
Transparencia
El concepto de transparencia de un sistema distribuido va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Queda como labor del sistema operativo el establecer los mecanismos que oculten la naturaleza distribuida del sistema y que permitan trabajar a los usuarios como si de un único equipo se tratara.
En un sistema transparente, las diferentes copias de un archivo deben aparecer al usuario como un único archivo. Queda como labor del sistema operativo el controlar las copias, actualizarlas en caso de modificación y en general, la unicidad de los recursos y el control de la concurrencia.
El que el sistema disponga de varios procesadores debe lograr un mayor rendimiento del sistema, pero el sistema operativo debe controlar que tanto los usuario como los programadores vean el núcleo del sistema distribuido como un único procesador. El paralelismo es otro punto clave que debe controlar el sistema operativo, que debe distribuir las tareas entre los distintos procesadores como en un sistema multiprocesador, pero con la dificultad añadida de que ésta tarea hay que realizara a través de varios ordenadores.
Eficiencia
La idea base de los sistemas distribuidos es la de obtener sistemas mucho más rápidos que los ordenadores actuales. Es en este punto cuando nos encontramos de nuevo con el paralelismo.
Para lograr un sistema eficiente hay que descartar la idea de ejecutar un programa en un único procesador de todo el sistema, y pensar en distribuir las tareas a los procesadores libres más rápidos en cada momento.
La idea de que un procesador vaya a realizar una tarea de forma rápida es bastante compleja, y depende de muchos aspectos concretos, como la propia velocidad del procesador, pero también la localidad del procesador, los datos, los dispositivos.  Se han de evitar situaciones como enviar un trabajo de impresión a un ordenador que no tenga conectada una impresora de forma local.
Flexibilidad
Un proyecto en desarrollo como el diseño de un sistema operativo distribuido debe estar abierto a cambios y actualizaciones que mejoren el funcionamiento del sistema. Esta necesidad ha provocado una diferenciación entre las dos diferentes arquitecturas del núcleo del sistema operativo: el núcleo monolítico y el micro-núcleo. Las diferencias entre ambos son los servicios que ofrece el núcleo del sistema operativo. Mientras el núcleo monolítico ofrece todas las funciones básicas del sistema integradas en el núcleo, el micro núcleo incorpora solamente las fundamentales, que incluyen únicamente el control de los procesos y la comunicación entre ellos y la memoria. El resto de servicios se cargan dinámicamente a partir de servidores en el nivel de usuario.