P. 1
Fundamentos de Los Sistemas Distribuidos

Fundamentos de Los Sistemas Distribuidos

|Views: 612|Likes:
Publicado poruribeotero

More info:

Published by: uribeotero on Aug 03, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

09/19/2013

pdf

text

original

SISTEMAS DISTRIBUIDOS

FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS

1. COMPONENTES DE UN SISTEMA DISTRIBUIDO

QUE ES SISTEMA DISTRIBUIDO
Un Sistema Distribuido consiste en una colección de computadores autónomos enlazados por una red y equipadas con un sistema de Software Distribuido que luce a los usuarios como si fuera un Sistema Único y Centralizado. Este tipo de sistemas se poseen las siguientes características intrínsecas: ‡ Los componentes trabajan en forma concurrente (interactúan simultáneamente). ‡ Los componentes pueden fallar de manera independiente sin ocasionar un fallo general. ‡ No existe un reloj global que sincronice los procesos que se ejecutan en el sistema. ‡ Los componentes no comparten memoria. Los sistemas distribuidos están por todas partes. Internet (considerado un gran sistema distribuido) permite que los usuarios de todo el mundo accedan a sus servicios donde quiera que estén situados. La mayoría de empresas administran una intranet, que provee servicios locales y servicios de Internet a los usuarios locales y habitualmente proporciona servicios a otros usuarios de Internet. Es posible construir pequeños sistemas distribuidos con computadores portátiles y otros dispositivos computacionales pequeños conectados a una red inalámbrica.

continuación

QUE ES SISTEMA DISTRIBUIDO

SISTEMA DISTRIBUIDO MULTIMEDIA
Un Sistema Distribuido Multimedia típico es capaz de soportar una variedad de aplicaciones como conferencias, accesos a secuencias almacenadas de vídeo y difusión de radio y televisión digitales. En este sistema, distribuido y abierto, las aplicaciones multimedia pueden ser iniciadas y utilizadas sin anuncio previo. Pueden coexistir varias aplicaciones en la misma red e incluso en la misma estación de trabajo, para lo cual se debe garantizar que todas las aplicaciones serán capaces de obtener la cantidad de recursos necesaria en los momentos requeridos, incluso cuando otras aplicaciones estén compitiendo por esos recursos.

OBJETIVOS DE UN SISTEMA DISTRIBUIDO
La compartición de recursos es el principal factor que motiva la construcción de sistemas distribuidos. Recursos como impresoras, archivos, páginas web o registros de bases de datos se administran mediante servidores del tipo apropiado. Por ejemplo, los servidores web administran páginas y otros recursos web. Los recursos son accedidos por clientes, por ejemplo, los clientes de los servidores web se llaman normalmente browsers o navegadores web. Además de compartir recursos, un sistema distribuido tiene como finalidad atender los siguientes aspectos que regularmente se presentan en una red: 1. Concurrencia. En una red de computadores, la ejecución de programas concurrentes es la norma. Yo puedo realizar mi trabajo en mi computador, mientras tú realizas tu trabajo en el tuyo, compartiendo recursos como páginas web o archivos, cuando es necesario. La capacidad del sistema para manejar recursos compartidos se puede incrementar añadiendo más recursos (por ejemplo, computadores) a la red. La coordinación de programas que comparten recursos y se ejecutan de forma concurrente es también un aspecto importante de cualquier sistema distribuido.

OBJETIVOS DE UN SISTEMA DISTRIBUIDO

continuación

2. Inexistencia de reloj global. Cuando los programas necesitan cooperar coordinan sus acciones mediante el intercambio de mensajes. La coordinación estrecha depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas. Pero resulta que hay límites a la precisión con lo que los computadores en una red pueden sincronizar sus relojes, ya que no hay una única noción global del tiempo correcto. Esto es una consecuencia directa del hecho que la única comunicación se realiza enviando mensajes a través de la red.

OBJETIVOS DE UN SISTEMA DISTRIBUIDO

continuación

3. Fallos independientes. Todos los sistemas informáticos pueden fallar y los diseñadores de sistemas tienen la responsabilidad de planificar las consecuencias de posibles fallos. Los sistemas distribuidos pueden fallar de muy diversas formas. Los fallos en la red producen el aislamiento de los computadores conectados al Sistema Distribuido, pero eso no significa que detengan su ejecución. De hecho, los programas que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o está excesivamente lenta.

COMUNICACIÓN EN LOS SISTEMAS DISTRIBUIDOS
Por ser de gran importancia para el esquema de comunicación entre los elementos de un sistema distribuido, se hará una profundización en el concepto de Agente y sus diversas connotaciones. Agente. La palabra ³Agente´ se refiere a todo ente que posee la habilidad, capacidad y autorización para actuar en nombre de otro. A diario, los ³agentes humanos´ asisten a las personas en tareas que requieren recursos especializados o conocimiento específico en un dominio. Por ejemplo, una secretaria atiende y resuelve situaciones en nombre de su jefe: administra la agenda, coordina las reuniones, recibe a los visitantes. Los agentes cumplen con los requerimientos para los cuales fueron entrenados. El usuario ³delega´ en el agente una o varias tareas que debe llevar a cabo quedando a la espera de los resultados. Dichas tareas son a menudo fáciles de especificar, pero en algunos casos complejas de realizar.

PROPIEDADES DE LOS AGENTES
Los agentes deben ser parte de un ambiente, deben poder monitorear su entorno y actuar sobre el, y deben responder según los objetivos para los cuales fueron diseñados. Deben entonces poseer una serie de atributos o propiedades que lo definen como agente. Autonomía: Un agente debe poder controlar sus propias acciones y estado interno. Una vez que el usuario activa el agente indicando algún objetivo de alto nivel, éste actúa independientemente, seleccionando estrategias y monitoreando el progreso en busca de la meta. Si falla con una estrategia, usa otra, pero sin intervención humana o con la mínima indispensable. Habilidad Social: Un agente debe ser comunicativo. Debe tener habilidad para interactuar con otros agentes o incluso con alguna persona, para solicitar información o bien para exponer los resultados obtenidos de la ejecución de las tareas planeadas. La naturaleza de la comunicación depende del tipo de agente con quien se comunique (humanos o no), en ambos casos debe establecer un protocolo común de intercambio de información entre ambas partes. Los agentes deben poseer algún tipo de interfaz para comunicarse con sus usuarios. Dicha interfaz puede establecerse simplemente mediante el envío de mensajes por correo electrónico o puede ser todo lo sofisticada que se desee.

PROPIEDADES DE LOS AGENTES

continuación

Reactividad: Se refiere al hecho de que un agente debe poder censar el estado del ambiente dentro del cual se encuentra inmerso y en función de esto actuar, respondiendo de manera adecuada a cambios producidos en el mismo. Los efectos producidos pueden modificar el estado de su entorno. Por ejemplo, un agente de filtrado de correo electrónico está censando su ambiente, alerta a la llegada de nuevos mensajes. La llegada de un nuevo mensaje (cambio en el medio) produce que el agente responda de acuerdo a las tareas asignadas. Orientación por objetivos: Un agente no sólo debe actuar por cambios detectados en el medioambiente, sino que debe trabajar en función de los objetivos para los cuales fue diseñado y las tareas que le fueron delegadas en cada momento. Un agente busca permanentemente satisfacer su agenda interna. En las aplicaciones convencionales, cuando un usuario ejecuta un comando, se activa un proceso que se ejecuta por determinado tiempo, algunos solicitan datos al usuario, retornan resultados y así sucesivamente. Esta es una visión pasiva de computación, ya que la motivación viene de parte del usuario. En un modelo basado en agentes, el proceso es auto-motivado, es decir, el agente busca satisfacer cierto estado interno con mínima intervención humana. Por ejemplo, un agente recuperador de archivos tiene especificada una tarea. El agente debe intentar permanentemente satisfacer la tarea que le fue delegada con base en las estrategias de búsqueda y recuperación con las cuales fue construido, hasta cumplir con el objetivo.

PROPIEDADES DE LOS AGENTES

continuación

Continuidad temporal: Un agente es un proceso temporalmente continuo. A diferencia de un programa convencional del cual se conoce su inicio y fin, un agente debe ejecutarse hasta que se haya alcanzado con el conjunto de objetivos solicitados, o bien, mientras su ciclo perdure y su usuario no desee detenerlo. La continuidad temporal es la propiedad que da ³vida´ al agente, posibilitando que se mantenga alerta a una solicitud o a algún cambio en el medio. El ciclo de vida de un agente depende de sus características, de las tareas que realice y de los deseos de su usuario en cuanto al tiempo durante el cual el agente debe ejecutarse. Movilidad: Es la capacidad de un agente de ³viajar´ por las redes de computadores, de nodo a nodo, en busca de los recursos que le permitan cumplir con su agenda. El término ³viajar´ se refiere a que en un determinado instante de tiempo el agente detiene su ejecución, almacena su estado interno y se dirige a otro sitio dentro de una red de computadores para luego continuar con su ejecución en la nueva ubicación. Los recursos a los que puede acceder pueden ser de software o hardware. Por ejemplo, un agente puede ir en busca de una base de datos que se encuentra en cierta máquina o bien ejecutarse remotamente haciendo uso del procesador y memoria del equipo destino. La movilidad no es una propiedad indispensable para un agente, sino que modifica la forma por la cual el agente cumple con sus objetivos, en este caso recurriendo a los recursos que puede ofrecer una red de computadores. Aporta una nueva forma de computación distribuida.

CLASIFICACIÓN DE LOS AGENTES
Los agentes pueden clasificarse de varias maneras, teniendo en cuenta algunas de las propiedades que poseen o bien haciendo hincapié en alguna en particular. De esta manera puede armarse un árbol taxonómico que abarque todas las combinaciones de propiedades y tareas que se quieran. Partiendo de lo anterior, se presenta la siguiente clasificación de los agentes de acuerdo con la función u objetivo principal del mismo. Agentes de interfaz Un agente de interfaz es un software cuasi-inteligente que asiste a un usuario cuando interactúa con una o más aplicaciones. La motivación es que se les pueda delegar tareas aburridas y laboriosas. Son asistentes personales que reducen el trabajo por la sobrecarga de información, como por ejemplo el filtrado de los mensajes de correo electrónico o la recuperación de archivos de Internet. Esta categoría de agentes apoyan y proveen asistencia a su usuario. El agente observa y monitorea las acciones que toma el usuario en la interfaz, aprende nuevos atajos, y sugiere mejores formas de hacer las tareas. La idea es que el agente pueda adaptarse a las preferencias y hábitos de sus usuarios. Enfatizan la autonomía y el aprendizaje para llevar a cabo tareas para sus dueños y trabajan en el mismo ambiente que éstos.

CLASIFICACIÓN DE LOS AGENTES

continuación

Agentes colaborativos Los agentes colaborativos constituyen un sistema multiagentes, es decir existe mas de un agente dedicado a satisfacer los requerimientos de sus usuarios. Para ello es necesario contar con esquemas de comunicación entre agentes que posibiliten la cooperación y el intercambio de conocimiento. Además, deben poseer un alto grado de autonomía para actuar interactuando con sus pares. La motivación detrás de la construcción de agentes colaborativos es que los sistemas construidos con unidades relativamente simples proveen mayor funcionalidad que un ente mayor, pudiendo extender la funcionalidad del sistema mas allá de las capacidades de uno de sus miembros. Además, estas arquitecturas posibilitan contar con mayor confiabilidad (debido a la redundancia) y mayor velocidad (debido al paralelismo) en el sistema conjunto. Las áreas de aplicación de este tipo de agentes incluyen: ‡ Resolución de problemas demasiado grandes. ‡ Interconexión de múltiples sistemas. ‡ Manejo de información proveniente de fuentes distribuidas.

CLASIFICACIÓN DE LOS AGENTES

continuación

Los agentes móviles: Son procesos capaces de viajar por una red de computadores, interactuando con hosts externos, recolectando información en nombre de su dueño y retornando a casa luego de completar las tareas establecidas . Los agentes forman un nivel de abstracción más para el usuario, detrás del cual se encuentran soluciones a cuestiones técnicas en algunos casos complicadas. Una de estas cuestiones es la distribución, es decir, como manejar recursos computacionales distribuidos. Con la idea de agentes móviles los recursos distribuidos no son completamente ocultados al usuario pero tampoco completamente expuestos. La noción de movilidad viene del objetivo de reducir el tráfico innecesario dentro de una red, con lo que se pueden reducir los costos de comunicación. Además, al aportar una nueva forma de computación distribuida posibilita el mejor aprovechamiento de los recursos de la red y permite que los usuarios tengan acceso a una cantidad mayor de recursos. Por ejemplo, debido a que las sesiones en busca de un recurso determinado ciertas veces son largas, la idea de agentes móviles provee una solución. Un usuario delega la tarea de búsqueda de información a un agente, establece una comunicación con la red y envía al agente a cumplir con su misión. La próxima vez que el usuario se conecte, el agente retorna con los resultados obtenidos.

continuación

CLASIFICACIÓN DE LOS AGENTES
Agentes de recuperación de información. El objetivo principal de los agentes dedicados específicamente a la recuperación de información es obtener información por el usuario. La motivación para su construcción es que con el crecimiento vertiginoso de Internet, la cantidad de información accesible supera la cantidad de tiempo disponible para analizarla. Los agentes de recuperación de información poseen métodos para permitir el rápido acceso y recuperación de información relevante. Tienen la tarea de administrar, manipular y juntar información de fuentes distribuidas. Pueden tener mecanismos de búsqueda y navegación flexibles y algoritmos de clasificación poderosos. El objetivo es construir agentes capaces de armar un diario personalizado, sabiendo dónde buscar, cómo encontrar lo buscado y cómo armarlo luego. Los agentes se presentan como una herramienta muy útil en la tarea de resolver el problema de la sobrecarga de información, debido a que éstos pueden realizar sus tareas mucho más rápido que las personas y, además, se encuentran disponibles las veinticuatro horas.

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Economía. El cociente precio/desempeño de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando están distribuidos. Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. Confiabilidad: Si una sola máquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al añadir pequeños sistemas, lo cual es mucho más difícil en un sistema centralizado y caro. Distribución: Algunas aplicaciones requieren de por sí una distribución física.

continuación

VENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Por otro lado, los sistemas distribuidos también exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: Compartir datos: Un sistema distribuido permite compartir datos más fácilmente que los sistemas aislados, que tendrían que duplicarlos en cada nodo para lograrlo. Compartir dispositivos. Un sistema distribuido permite acceder dispositivos desde cualquier nodo en forma transparente, lo cual es imposible con los sistemas aislados. El sistema distribuido logra un efecto sinergético. Comunicaciones. La comunicación persona a persona es factible en los sistemas distribuidos, en los sistemas aislados no. Flexibilidad. La distribución de las cargas de trabajo es factible en el sistema distribuido, se puede incrementar el poder de cómputo.

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Así como los sistemas distribuidos exhiben grandes ventajas, también se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la producción comercial de sistemas operativos en la actualidad. El problema más importante en la creación de sistemas distribuidos es el software; los problemas de compartición de datos y recursos son tan complejos que los mecanismos de solución generan mucha sobrecarga al sistema haciéndolo ineficiente. El revisar y validar, por ejemplo, quiénes tienen acceso a algunos recursos y quiénes no, el aplicar los mecanismos de protección y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas están aún en sus comienzos.

continuación

DESVENTAJAS DE LOS SISTEMAS DISTRIBUIDOS
Otros problemas de los sistemas distribuidos surgen debido a la concurrencia y al paralelismo. Tradicionalmente las aplicaciones son creadas para computadores que ejecutan secuencialmente, de manera que el identificar secciones de código paralelizable es un trabajo arduo, pero necesario para dividir un proceso grande en sub-procesos y enviarlos a diferentes unidades de procesamiento para lograr la distribución. Con la concurrencia se deben implantar mecanismos para evitar las condiciones de competencia, las postergaciones indefinidas, el ocupar un recurso y estar esperando otro, las condiciones de espera circulares y, finalmente, los abrazos mortales (deadlocks). Estos problemas de por sí se presentan en los sistemas multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es aún más complejo, y por lo tanto, necesita de algoritmos más complejos con la inherente sobrecarga esperada.

2. CARACTERIZACIÓN DE LOS SISTEMAS DISTRIBUIDOS

HETEROGENEIDAD
Un sistema distribuido permite que los usuarios accedan a servicios y ejecuten aplicaciones sobre un conjunto heterogéneo de redes y computadores. Esta heterogeneidad (es decir, variedad y diferencia) comprende los siguientes cinco aspectos: · Redes. · Hardware de computadores. · Sistemas operativos. · Lenguajes de programación. · Implementaciones de diferentes desarrolladores. El problema de la heterogeneidad plantea que los programas escritos por diferentes programadores no podrán comunicarse entre sí a menos que utilicen estándares comunes, por ejemplo, para la comunicación en red, la representación de datos elementales y estructuras de datos en mensajes. Para que esto ocurra es necesario concertar y adoptar estándares como por ejemplo los protocolos de Internet.

continuación

HETEROGENEIDAD

HETEROGENEIDAD Y CODIGO MOVIL
El término código móvil se emplea para referirse al código que puede ser enviado desde un computador a otro y ejecutarse en éste último, por eso los applets16 de Java®17 son un ejemplo de ello. Dado que el conjunto de instrucciones de un computador depende del hardware, el código de nivel de máquina adecuado para ejecutarse en un tipo de computador no es adecuado para ejecutarse en otro tipo. Por ejemplo, los usuarios de PCs envían a veces archivos ejecutables agregados a los correos electrónicos para ser ejecutados por el destinatario, pero el receptor bien pudiera no ser capaz de ejecutarlo, por ejemplo, sobre un Macintosh® o un computador con LINUX®. La aproximación de máquina virtual provee un modo de crear código ejecutable sobre cualquier hardware: el compilador de un lenguaje concreto genera código para una máquina virtual en lugar de código apropiado para un hardware particular, por ejemplo el compilador Java® produce código para la máquina virtual Java®, la cual sólo necesita ser implementada una vez para cada tipo de máquina con el fin de poder lanzar programas Java®. Sin embargo, la solución Java® no se puede aplicar de modo general a otros lenguajes.

EXTENSIBILIDAD
La extensibilidad de un sistema de computación es la característica que determina si el sistema puede ser extendido y reimplementado en diversos aspectos . La extensibilidad de los sistemas distribuidos se determina en primer lugar por el grado en el cual se pueden añadir nuevos servicios de compartición de recursos y ponerlos a disposición para el uso por una variedad de programas cliente. Para hablar de extensibilidad es importante que la documentación de las interfaces software clave de los componentes de un sistema esté disponible para los desarrolladores de software. Es decir, que las interfaces clave estén publicadas. Este procedimiento es similar a una estandarización de las interfaces, aunque a menudo va mas allá de los procedimientos oficiales de estandarización, que por lo demás suelen ser lentos y complicados.

SEGURIDAD
Entre los recursos de información que se ofrecen y se mantienen en los sistemas distribuidos, muchos tienen un alto valor intrínseco para sus usuarios. Por esto su seguridad es de considerable importancia. La seguridad de los recursos de información tiene tres componentes: confidencialidad (protección contra el descubrimiento por individuos no autorizados); integridad (protección contra la alteración o corrupción); y disponibilidad (protección contra interferencia con los procedimientos de acceso a los recursos). Si se tiene en cuenta lo anterior, el permitir un acceso libre a todos los recursos de una intranet lleva asociados riesgos contra la seguridad.

ESCALABILIDAD
Los sistemas distribuidos operan efectiva y eficientemente en muchas escalas diferentes, desde pequeñas intranets a Internet. Se dice que un sistema es escalable si su capacidad de procesamiento puede crecer añadiendo nodos adicionales: ‡Aumenta el rendimiento con un número creciente de nodos (idealmente de forma lineal). ‡El tiempo de respuesta decrece (o se mantiene constante o crece lentamente) con un número creciente de nodos. ‡La fiabilidad el sistema aumenta con número creciente de nodos (idealmente de forma logarítmica). ‡Como consecuencia de lo anterior el Sistema Distribuido conserva su efectividad cuando ocurre un incremento significativo en el número de recursos y el número de usuarios.

TRATAMIENTO DE FALLOS
Los sistemas computacionales a veces fallan. Cuando aparecen fallos en el hardware o el software, los programas pueden producir resultados incorrectos o pueden parar antes de haber completado el cálculo pedido. Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan mientras otros siguen funcionando. Consecuentemente, el tratamiento de fallos es particularmente difícil. Entre las principales técnicas para tratar fallos se encuentran las siguientes: Detección de fallos. Algunos fallos son detectables. Por ejemplo, se pueden utilizar sumas de comprobación para detectar datos corruptos en un mensaje o un archivo. Por otra parte, los sistemas que trabajan con el protocolo IP tienen algoritmos para detectar errores en los datos transmitidos. Enmascaramiento de fallos. Algunos fallos que han sido detectados pueden ocultarse o atenuarse. Dos ejemplos de ocultación de fallos son: ‡Los mensajes pueden retransmitirse cuando falla la recepción. ‡Los archivos con datos pueden escribirse en una pareja de discos de forma que si uno está deteriorado el otro seguramente está en buen estado. Simplemente eliminar un mensaje corrupto es un ejemplo de atenuar un fallo (pudiera retransmitirse de nuevo).

continuación

TRATAMIENTO DE FALLOS
Tolerancia de fallos. La mayoría de los servicios en Internet exhiben fallos; es posible que no sea práctico para ellos pretender detectar y ocultar todos los fallos que pudieran aparecer en una red tan grande y con tantos componentes. Sus clientes pueden diseñarse para tolerar ciertos fallos, lo que implica que también los usuarios tendrán que tolerarlos generalmente. Por ejemplo, cuando un visualizador web no puede contactar con un servidor web no hace que el cliente tenga que esperar indefinidamente mientras hace sucesivos intentos; informa al usuario del problema, dándole la libertad de intentarlo más tarde. Recuperación frente a fallos. La recuperación implica el diseño de software en el que, tras una caída del servidor, el estado de los datos pueda reponerse o reversarse (roll back) a una situación anterior. En general, cuando aparecen fallos los cálculos realizados por algunos programas se encontrarán incompletos y al actualizar datos permanentes (archivos e información ubicada en almacenamiento persistente) pudiera encontrarse en un estado inconsistente.

TRATAMIENTO DE FALLOS

continuación

Redundancia. Puede lograrse que los servicios toleren fallos mediante el empleo redundante (duplicidad) de componentes. Ejemplo: · Siempre debe haber al menos dos rutas diferentes entre cualesquiera dos encaminadotes (routers) en Internet. · En el Sistema de Nombres de Dominio, cada tabla de nombres se encuentra replicada en dos servidores diferentes. · Una base de datos puede encontrarse replicada en varios servidores para asegurar que los datos siguen siendo accesibles tras el fallo de cualquier servidor concreto; los servidores pueden diseñarse para detectar fallos entre sus iguales; cuando se detecta algún error en un servidor se redirigen los clientes a los servidores restantes. Los sistemas distribuidos proporcionan un alto grado de disponibilidad frente a los fallos del hardware. La disponibilidad de un sistema mide la proporción de tiempo en que está utilizable. Cuando falla algún componente del sistema distribuido sólo resulta afectado el trabajo relacionado con el componente defectuoso. Así como cuando un computador falla el usuario puede desplazarse a otro, también puede iniciarse un proceso de servicio en otra ubicación.

CONCURRENCIA
Tanto los servicios como las aplicaciones proporcionan recursos que pueden compartirse entre los clientes en un sistema distribuido. Existe por lo tanto una posibilidad de que varios clientes intenten acceder a un recurso compartido a la vez. Por ejemplo, una estructura de datos que almacena artículos de un determinado Proveedor puede ser accedida muy frecuentemente cuando se ofertan descuentos o gangas. El proceso que administra un recurso compartido puede atender las peticiones de cliente una por una en cada momento, pero esta aproximación limita el ritmo de producción del sistema Por esto los servicios y aplicaciones permiten, usualmente, procesar concurrentemente múltiples peticiones de los clientes.

TRANSPARENCIA
Se define transparencia como la ocultación, al usuario y al programador de aplicaciones, de la separación de los componentes en un sistema distribuido, de forma que se perciba el sistema como un todo más que como una colección de componentes independientes. identifican ocho formas de transparencia: Transparencia de acceso que permite acceder a los recursos locales y remotos empleando operaciones idénticas. Transparencia de ubicación que permite acceder a los recursos sin conocer su localización. Transparencia de concurrencia que permite que varios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua. Transparencia de replicación que permite utilizar múltiples ejemplares de cada recurso para aumentar la fiabilidad y las prestaciones sin que los usuarios y los programadores de aplicaciones necesiten su conocimiento.

continuación

TRANSPARENCIA
Transparencia frente a fallos que permite ocultar los fallos, dejando que los usuarios y programas de aplicación completen sus tareas a pesar de fallos del hardware o de los componentes software. Transparencia de movilidad que permite la reubicación de recursos y clientes en un sistema sin afectar la operación de los usuarios y los programas. Transparencia de prestaciones que permite reconfigurar el sistema para mejorar las prestaciones según varía su carga. Transparencia al escalado que permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Las dos más importantes son la transparencia de acceso y la transparencia de ubicación; su presencia o ausencia afecta principalmente a la utilización de recursos distribuidos. A veces se les da el nombre conjunto de transparencia de red.

3. TIPOS DE SISTEMAS DISTRIBUIDOS

INTERNET
Internet es una vasta colección de redes de computadores de diferentes tipos, las cuales se encuentran interconectadas. El diseño y la construcción de los mecanismos de comunicación Internet (los protocolos Internet) es una realización técnica fundamental, que permite que un programa que se está ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte.

INTRANET
Una intranet es una porción de Internet que es administrada separadamente, y que tiene un límite que puede ser configurado para hacer cumplir políticas de seguridad local. Está compuesta de varias redes de área local (LANs / Local Area Networks) enlazadas por conexiones backbone. La configuración de red de una intranet particular es responsabilidad de la organización que la administra y puede variar ampliamente, desde una LAN en un único sitio a un conjunto de LANs conectadas perteneciendo a ramas de la empresa u otra organización en diferentes países. Una intranet está conectada a Internet por medio de un encaminador (router), lo que permite a los usuarios hacer uso de servicios de otro sitio como el Web o el correo electrónico. Permite también acceder a los servicios que ella proporciona a los usuarios de otras intranets.

continuación

INTRANET
Red Intranet

COMPUTACIÓN MÓVIL Y UBICUA
Si hay un hecho relevante y característico de nuestra sociedad actual es la aparición y rápida difusión de dispositivos móviles (teléfonos móviles, portátiles, etc.) los cuales nos acompañan en todo momento debido a su reducido tamaño. Estos dispositivos tienen capacidad de cómputo y además pueden comunicarse con otros elementos sin necesidad de conexiones físicas, gracias a protocolos inalámbricos como GPRS, UMTS, WLAN y Bluetooth.

continuación

COMPUTACIÓN MÓVIL Y UBICUA
Las aplicaciones software de estos pequeños dispositivos deben de adaptarse a las restricciones de memoria, procesamiento y de comunicación intermitente y de calidad cambiante que les caracteriza. El paradigma de computación distribuida que mejor se adapta a todas estas características es lo que se denomina Agente y de esta manera es que se desarrollan ampliamente los sistemas de computación móvil y ubicua. De acuerdo con lo anterior es que han evolucionado las plataformas de agentes móviles en dispositivos limitados, y de la mano una serie de servicios básicos que deben ser proporcionados para los entornos móviles. Por lo general la mayoría de aplicaciones distribuidas para plataformas móviles se están desarrollando en lenguaje Java el cual se caracteriza por su alta portabilidad.

COMPUTACIÓN DISTRIBUIDA
La computación distribuida, computación en grilla o informática en rejilla, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de computadores organizados en racimos incrustados en una infraestructura de telecomunicaciones distribuida. La informática en grilla (grid computing) consiste en compartir recursos heterogéneos (basadas en distintas plataformas, arquitecturas de equipos y programas, lenguajes de programación), situados en distintos lugares y pertenecientes a diferentes dominios de administración sobre una red que utiliza estándares abiertos. Dicho brevemente, consiste en virtualizar los recursos informáticos. Para ello se aprovecha la gran capacidad que están teniendo los procesadores y en especial los utilizados en equipos personales. La computación en grilla ha sido diseñada para resolver problemas demasiado grandes para cualquier simple supercomputadora, mientras se mantiene la flexibilidad de trabajar en múltiples problemas más pequeños. Por lo tanto, la computación distribuida es naturalmente un entorno multiusuario; por ello, las técnicas de autorización segura son esenciales antes de permitir que los recursos informáticos sean controlados por usuarios remotos.

CARACTERISTICAS DE LA COMPUTACIÓN DISTRIBUIDA
En entorno de computación distribuida en grilla se caracteriza principalmente por contar con los siguientes elementos:  Servidores y clientes con conexión a una red (Internet).  Conexión altamente confiable 7/24 (7 días a la semana, 24 horas al día).  Compartición de recursos (hardware, software, datos, dispositivos de almacenamiento, etc.)  Desarrollo de procesos de manera transparente a los usuarios.  Alta capacidad de cálculo global. Las dos principales entidades en un entorno de computación distribuida son el servidor y muchos clientes. El servidor se considera un computador central que genera paquetes de trabajo los cuales son enviados a los clientes. Estos últimos realizan las tareas descritas en el paquete y una vez hayan finalizado, el paquete de trabajo junto con los resultados son regresados al servidor.

VENTAJAS DE LA COMPUTACIÓN DISTRIBUIDA
Los computadores y el acceso a la red son económicos: Los computadores personales actuales tienen una potencia superior a los primeros, además de tener mucho menos tamaño y precio. Compartición de recursos: La arquitectura de la computación distribuida refleja la arquitectura de computación de las organizaciones modernas. Cada organización mantiene de forma independiente los computadores y recursos locales, mientras permite compartir recursos a través de la red. Escalabilidad: En la computación monolítica, los recursos disponibles están limitados por la capacidad de un computador. Por el contrario, la computación distribuida proporciona escalabilidad, debido a que permite incrementar el número de recursos compartidos según la demanda. Tolerancia a fallos: Al contrario que la computación monolítica, la computación distribuida permite que un recurso pueda ser replicado con el fin de dotar al sistema de tolerancia a fallos, de tal forma que proporcione disponibilidad de dicho recurso en presencia de fallos.

DESVENTAJAS DE LA COMPUTACIÓN DISTRIBUIDA
Múltiples puntos de fallo: Hay más puntos de fallo en la computación distribuida. Ya que múltiples computadores están implicados en la computación distribuida, y todos son dependientes de la red para su comunicación, el fallo de uno o más computadores, o uno o más enlaces de red, puede suponer problemas para un sistema de computación distribuida. Aspectos de seguridad: En un sistema distribuido hay más posibilidad de ocurrencia de ataques. Mientras que en un sistema centralizado los recursos están bajo el control de una administración única, en un sistema distribuido la gestión es descentralizada y frecuentemente implica a un gran número de organizaciones independientes

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->