Sei sulla pagina 1di 21

Resumen Sistemas Distribuidos

Maestra en Redes y Telecomunicaciones


Marzo 2012

Introduccin
Los sistemas informticos han ido evolucionando en gran manera desde finales de los 90 hasta los tiempos actuales. Se han hecho ms complejos con el fin de brindar mayor capacidad, disponibilidad, fiabilidad y seguridad. Los modelos de sistemas informticos no han cambiado sus esquemas totalmente desde lo planteado en aquellas pocas, el modelo cliente-servidor ha seguido siendo la base de lo que hoy en da conocemos como cmputo distribuido.

Definicin
Un sistema distribuido se define como una coleccin de computadores autnomos conectados por una red, y con el software distribuido adecuado para que el sistema sea visto por los usuarios como una nica entidad capaz de proporcionar facilidades de computacin. [ Colouris 1994 ].

Descripcin
Los sistemas distribuidos se implementan en diversas plataformas hardware, desde unas pocas estaciones de trabajo conectadas por una red de rea local, hasta Internet, una coleccin de redes de rea local y de rea extensa interconectados, que en lazan millones de ordenadores. Las aplicaciones de los sistemas distribuidos varan desde la provisin de capacidad de computo a grupos de usuarios, hasta sistemas bancarios, comunicaciones multimedia y abarcan prcticamente todas las aplicaciones comerciales y tcnicas de los ordenadores. Los requisitos de dichas aplicaciones incluyen un alto nivel de fiabilidad, seguridad contra interferencias externas y privacidad de la informacin que el sistema mantiene. Se deben proveer accesos concurrentes a bases de datos por parte de muchos usuarios, garantizar tiempos de respuesta, proveer puntos de acceso al servicio que estn distribuidos geogrficamente, potencial para el crecimiento del sistema para acomodar la expansin del negocio y un marco para la integracin de sistema usados por diferentes compaas y organizaciones de usuarios.

Caractersticas
[Colouris 1994] establece que son seis las caractersticas principales responsables de la utilidad de los sistemas distribuidos. Se trata de comparicin re recursos, apertura (openness), concurrencia, escalabilidad, tolerancia a fallos y transparencia. En las siguientes lneas trataremos de abordar cada una de ellas.

Comparticin Recursos
El trmino 'recurso' es bastante abstracto, pero es el que mejor caracteriza el abanico de entidades que pueden compartirse en un sistema distribuido. El abanico se extiende desde componentes hardware como discos e impresoras hasta elementos software como ficheros, ventanas, bases de datos y otros objetos de datos. La idea de comparticin de recursos no es nueva ni aparece en el marco de los sistemas distribuidos. Los sistemas multiusuario clsicos desde siempre han provisto comparticin de recursos entre sus usuarios. Sin embargo, los recursos de una computadora multiusuario se comparten de manera natural entre todos sus usuarios. Por el contrario, los usuarios de estaciones de trabajo monousuario o computadoras personales dentro de un sistema distribuido no obtienen automticamente los beneficios de la comparticin de recursos.

Apertura
Un sistema informtico es abierto si el sistema puede ser extendido de diversas maneras. Un sistema puede ser abierto o cerrado con respecto a extensiones hardware (aadir perifricos, memoria o interfaces de comunicacin, etc... ) o con respecto a las extensiones software ( aadir caractersticas al sistema operativo, protocolos de comunicacin y servicios de comparticin de recursos, etc... ). La apertura de los sistemas distribuidos se determina primariamente por el grado hacia el que nuevos servicios de comparticin de recursos se pueden aadir sin perjudicar ni duplicar a los ya existentes.

Concurrencia
Cuando existen varios procesos en una nica maquina decimos que se estn ejecutando concurrentemente. Si el ordenador esta equipado con un nico procesador central, la concurrencia tiene lugar entrelazando la ejecucin de los distintos procesos. Si la computadora tiene N procesadores, entonces se pueden estar ejecutando estrictamente a la vez hasta N procesos.

Escalabilidad
Los sistemas distribuidos operan de manera efectiva y eficiente a muchas escalas diferentes. La escala ms pequea consiste en dos estaciones de trabajo y un servidor de ficheros, mientras que un sistema distribuido construido alrededor de una red de rea local simple podra contener varios cientos de estaciones de trabajo, varios servidores de ficheros, servidores de impresin y otros servidores de propsito especifico. A menudo se conectan varias redes de rea local para formar internetworks, y stas podran contener muchos miles de ordenadores que forman un nico sistema distribuido, permitiendo que los recursos sean compartidos entre todos ellos.

Tolerancia a Fallos
Los sistemas informticos a veces fallan. Cuando se producen fallos en el software o en el hardware, los programas podran producir resultados incorrectos o podran pararse antes de terminar la computacin que estaban realizando. El diseo de sistemas tolerantes a fallos se basa en dos cuestiones, complementarias entre s: Redundancia hardware (uso de componentes redundantes) y recuperacin del software (diseo de programas que sean capaces de recuperarse de los fallos).

En los sistemas distribuidos la redundancia puede plantearse en un grano mas fino que el hardware, pueden replicarse los servidores individuales que son esenciales para la operacin continuada de aplicaciones criticas.

Tolerancia a Fallos
La recuperacin del software tiene relacin con el diseo de software que sea capaz de recuperar (roll-back) el estado de los datos permanentes antes de que se produjera el fallo. Los sistemas distribuidos tambin proveen un alto grado de disponibilidad en la vertiente de fallos hardware. La disponibilidad de un sistema es una medida de la proporcin de tiempo que esta disponible para su uso. Un fallo simple en una maquina multiusuario resulta en la no disponibilidad del sistema para todos los usuarios. Cuando uno de los componentes de un sistema distribuidos falla, solo se ve afectado el trabajo que estaba realizando el componente averiado. Un usuario podra desplazarse a otra estacin de trabajo; un proceso servidor podra ejecutarse en otra maquina.

Transparencia
La transparencia se define como la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes de un sistema distribuido, de manera que el sistema se percibe como un todo, en vez de una coleccin de componentes independientes. La transparencia ejerce una gran influencia en el diseo del software de sistema. El manual de referencia RM-ODP [ISO 1996a] identifica ocho formas de transparencia. Estas proveen un resumen til de la motivacin y metas de los sistemas distribuidos.

Tipos de Transparencia

Transparencia de Acceso : Permite el acceso a los objetos de informacin remotos de la misma forma que a los objetos de informacin locales. Transparencia de Localizacin: Permite el acceso a los objetos de informacin sin conocimiento de su localizacin Transparencia de Concurrencia: Permite que varios procesos operen concurrentemente utilizando objetos de informacin compartidos y de forma que no exista interferencia entre ellos. Transparencia de Replicacin: Permite utilizar mltiples instancias de los objetos de informacin para incrementar la fiabilidad y las prestaciones sin que los usuarios o los programas de aplicacin tengan por que conoces la existencia de las replicas. Transparencia de Fallos: Permite a los usuarios y programas de aplicacin completar sus tareas a pesar de la ocurrencia de fallos en el hardware o en el software. Transparencia de Migracin: Permite el movimiento de objetos de informacin dentro de un sistema sin afectar a los usuarios o a los programas de aplicacin. Transparencia de Prestaciones. Permite que el sistema sea reconfigurado para mejorar las prestaciones mientras la carga varia. Transparencia de Escalado: Permite la expansin del sistema y de las aplicaciones sin cambiar la estructura del sistema o los algoritmos de la aplicacin.

Soluciones Tcnicas
Sistemas N-Tiered: El modelo cannico cliente-servidor asume exactamente dos participantes discretos en el sistema. Se denomina sistema 'two-tier'; la lgica de la aplicacin puede estar en el cliente, el servidor, o compartida entre los dos. Tambin puede darse el caso de tener la lgica de la aplicacin separada de los datos y de la interfaz de usuario, convirtindose el sistema en 'three-tiered'. En un sistema 'three-tiered' ideal toda la lgica de la aplicacin reside en una capa separada. Esto ocurre raramente en los sistemas actuales. Siempre hay ciertas partes que permanecen o bien del lado del cliente o del lado del servidor. Las aplicaciones Web estndar son un ejemplo clsico de sistemas 'three-tiered'. Por un lado se tienen la interfaz de usuario, provista por la interpretacin de HTML, por un navegador. Los componentes embebidos visualizados por el navegador residen en la capa media; pueden ser applets de Java, ActiveX's o cualquier otra clase de entidad que provea lgica de aplicacin para el sistema. Por ltimo se tienen los datos suministrador por el servidor Web.

Modelo Cliente - Servidor


El modelo cliente-servidor de un sistema distribuido es el modelo ms conocido y ms ampliamente adoptado en la actualidad. Hay un conjunto de procesos servidores, cada uno actuando como un gestor de recursos para una coleccin de recursos de un tipo, y una coleccin de procesos clientes, cada uno llevando a cabo una tarea que requiere acceso a algunos recursos hardware y software compartidos. Los gestores de recursos a su vez podran necesitar acceder a recursos compartidos manejados por otros procesos, as que algunos procesos son ambos clientes y servidores. En el modelo, cliente-servidor, todos los recursos compartidos son mantenidos y manejados por los procesos servidores. Los procesos clientes realizan peticiones a los servidores cuando necesitan acceder a algn recurso. Si la peticin es valida, entonces el servidor lleva a cabo la accin requerida y enva una respuesta al proceso cliente.

Middleware
El trmino middleware se discute en [Lewandosky 1998]. El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina middleware. El acceso transparente a servicios y recursos no locales distribuidos a travs de una red se provee a travs del middleware, que sirve como marco para la comunicaciones entre las porciones cliente y servidor de un sistema. El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisin fsica de la peticin va red, y la devolucin de resultados desde el servidor al cliente. Ejemplos de middleware estndar para dominios especficos incluyen: ODBC, para bases de datos, Lotus para groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para objetos distribuidos.

Middleware
El middleware fundamental o genrico es la base de los sistemas cliente-servidor. Los servicios de autentificacin en red, llamadas a procedimiento remoto, sistemas de ficheros distribuidos y servicios de tiempo en red se consideran parte del middleware genrico. Este tipo de middleware empieza a ser parte estndar de los sistemas operativos modernos como Windows NT. En sistemas donde no se disponga deber recurrirse a middleware del tipo OSD DCE (Distributed Computing Environment) [OSF 1994]. El middleware especifico para un dominio complementa al middleware genrico de cara a aplicaciones mucho mas especificas. El protocolo de comunicaciones mas usado por el middlware, tanto genrico como especifico, es TCP/IP. Esto se debe a su amplia difusin en todos los sistemas operativos del mercado y en especial en los ordenadores personales.

Cloud Computing
Es un trmino que se define como una tecnologa que ofrece servicios a travs de la plataforma de internet. Los usuarios de este servicio tienen acceso de forma gratuita o de pago todo depende del servicio que se necesite usar. El trmino es una tendencia que responde a mltiples caractersticas integradas. Uno de los ejemplos de est nube es el servicio que presta Google Apps que incorpora desde un navegador hasta el almacenamiento de datos en sus servidores. Los programas deben estar en los servidores en lnea y puedas acceder a los servicios y la informacin a travs de internet.

Caractersticas
Una de las principales diferencias del Cloud Computing es que no hay necesidad de conocer la infraestructura detrs de esta, pasa a ser una nube donde las aplicaciones y servicios pueden fcilmente crecer (escalar), funcionar rpido y casi nunca fallan, sin conocer los detalles del funcionamiento de esta nube. Este tipo de servicio se paga segn alguna mtrica de consumo, no por el equipo usado en s, sino por ejemplo en el consumo de electricidad o por uso de CPU/hora como en el caso de Amazon EC2. Entre otras caractersticas podemos mencionar:

Auto Reparable: En caso de fallo, el ultimo backup de la aplicacin pasa a ser automticamente la copia primaria y se genera uno nuevo. Escalable: Todo el sistema/arquitectura es predecible y eficiente. Si un servidor maneja 1000 transacciones, 2 servidores manejaran 2000 transacciones. Regidos por un Acuerdo de Nivel de Servicio (SLA) que define varias polticas como cuales son los tiempos esperados de rendimiento y en caso de pico, debe crear ms instancias. En el caso de AWS an se pregunta si su SLA es adecuado. Virtualizado: las aplicaciones son independientes del hardware en el que corran, incluso varias aplicaciones pueden corren en una misma maquina o una aplicacin puede usar varias maquinas a la vez Multipropsito: El sistema est creado de tal forma que permite a diferentes clientes compartir la infraestructura sin preocuparse de ello y sin comprometer su seguridad y privacidad

Soluciones Cloud Computing


Varias son las grandes empresas que se han dedicado a ofrecer estos servicios, promoviendo el fcil acceso a nuestra informacin, los bajos costos, la escalabilidad y muchas caractersticas que nos hace pensar en la comodidad que nos brindan, entre ellas podemos mencionar:

Google Apps: brinda el servicio de aplicaciones para empresas como Gmail, Google Talk, Google Calendar y Google Docs, etc. Amazon Web Services: los servicios que ofrece son el Amazon EC2, Amazon S3, SimpleDB, Amazon SQS. Azure de Microsoft: ofrece servicios de sistema operativo, hosting, sistemas para desarrollo. Rackspace, una famosa empresa de hosting, est detrs de Mosso una compaa la cual ofrece un paquete de bsico de hosting y a partir de este se escala segn se necesite (y sin migrar de servidores). Recientemente Rackspace adquiri a JungleDisk, un popular cliente para Amazon S3 y que a futuro estar integrndose con CloudFiles, otro servicio de Mosso.

Ventajas y Desventajas de Cloud Computing


Entre las ventajas de la Cloud Computing se pueden mencionar:

Acceso a la informacin y los servicios desde cualquier lugar. Servicios gratuitos y de pago segn las necesidades del usuario. Empresas con facilidad de escalabilidad Capacidad de procesamiento y almacenamiento sin instalar mquinas localmente.

Entre las desventajas podemos mencionar:


Acceso de toda la informacin a terceras empresas. Dependencia de los servicios en lnea.

Potrebbero piacerti anche