Las redes de telfonos mviles Las redes corporativas Hogares y Pequeas Oficinas Redes personales
Todas, tanto separadas como combinadas, comparten las caractersticas esenciales que las hacen elementos importantes para su estudio bajo el titulo de Sistemas Distribuidos.
INTRODUCCION QU ES UN SISTEMA?
Un sistema es un conjunto de partes o elementos organizadas y relacionadas que interactan entre s para lograr un objetivo.
Un sistema puede ser fsico o concreto (una computadora, un televisor, un humano) o puede ser abstracto o conceptual (un software)
Cada sistema existe dentro de otro ms grande, por lo tanto un sistema puede estar formado por subsistemas y partes, y a la vez puede ser parte de un supersistema.
Un grupo de elementos no constituye un sistema si no hay una relacin e interaccin, que de la idea de un "todo" con un propsito. Definicin Sistema Distribuido: 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 ]
Definicin Sistema Distribuido: La definicin de SD tiene las siguientes consecuencias significativas:
Concurrencia.- En una red de computadores, la ejecucin de programas concurrentes es la norma.
La capacidad del sistema para manejar recursos compartidos se puede incrementar aadiendo ms recursos.
Yo puedo realizar mi trabajo en mi computadora, mientras t realizas tu trabajo en la tuya, compartiendo recursos como pginas web o ficheros.
Inexistencia de reloj global.- Cuando los programas necesitan cooperar coordinan sus acciones mediante el intercambio de mensajes.
La coordinacin estrecha depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas.
Pero resulta que hay lmites a la precisin con lo que los computadores en una red pueden sincronizar sus relojes, no hay una nica nocin global del tiempo correcto.
Fallos independientes.-
Todos los sistemas informticos pueden fallar y los diseadores de sistemas tienen la responsabilidad de planificar las consecuencias de posibles fallos.
Los fallos en la red producen el aislamiento de los computadores conectados a l, pero eso no significa que detengan su ejecucin. De hecho los programas que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o esta excesivamente lenta.
De forma similar, la parada de un computador o la terminacin inesperada de un programa en alguna parte del sistema (crash) no se da ha conocer inmediatamente a los dems componentes con los que se comunica.
Cada componente del sistema puede fallar independientemente, permitiendo que los dems continen su ejecucin
La motivacin para construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos.
Recurso.- El termino es un poco abstracto, cosa que puede ser compartida de forma til en un sistema de computadoras conectados en red.
Componente Hw: impresora, discos Sw: ficheros, Base de Datos INTERNET
Vasta coleccin de redes de computadoras de diferentes tipos interconectados. Programas ejecutndose en los computadores conectados a ella interactan mediante paso de mensaje, empleando un medio comn de comunicacin.
Es un sistema distribuido muy grande. Permite a los usuarios, donde quiera que estn, hacer uso de servicios como: World Wide Web, el correo electrnico, y la transferencia de ficheros.
El conjunto de servicios es abierto, puede ser extendido por la adicin de servidores y nuevos tipos de servicios.
EJEMPLOS DE SISTEMAS DISTRIBUIDOS Es una porcin de Internet que es, administrada separadamente y que tiene un limite que puede ser configurado para hacer cumplir polticas de seguridad local.
Una intranet esta 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 electrnico.
Permite tambin acceder a los servicios que ella proporciona a los usuarios de otras intranets.
El papel del cortafuegos es proteger una intranet impidiendo que entren o salgan mensajes no autorizados, filtrando los mensajes que entran o salen, por ejemplo de acuerdo con su origen o destino. (Complementado con el uso de mecanismos de seguridad ms refinados)
La solucin que se adopta en tales organizaciones es realizar una intranet como se ha indicado, pero sin conexiones a Internet. (Polica, agencia de seguridad, servicio de salud, organizaciones militares.)
INTRANETS.- Los avances tecnolgicos en la miniaturizacin de dispositivos y en redes inalmbricas han llevado cada vez ms a la integracin de dispositivos de computacin pequeos y porttiles en sistemas distribuidos. Estos dispositivos incluyen:
Computadores porttiles.
Dispositivos de mano (handheld): PDA (Asistente Digital Personal), telfonos mviles, cmaras digitales.
Dispositivos que se pueden llevar puestos, como relojes inteligentes con funcionalidad semejante a la de los PDAs.
Dispositivos insertados en aparatos, como lavadoras, coches y frigorficos.
La facilidad de transporte de muchos de estos dispositivos, junto con su capacidad para conectarse adecuadamente a redes en diferentes lugares, hace posible la computacin mvil.
COMPUTACIN MOVIL Y UBICUA Computacin nmada
Realizacin de tareas de cmputo mientras el usuario est en movimiento o visitando otros lugares distintos de su entorno habitual.
Los usuarios que estn fuera de su hogar intranet (trabajo - casa) disponen de la posibilidad de acceder a los recursos mediante los dispositivos que llevan con ellos. Computacin Mvil.- Utilizacin de muchos dispositivos de computacin pequeos y baratos que estn presentes en los entornos fsicos de los usuarios: casa, oficina y otros.
Ubicuo: esta pensado para sugerir que los pequeos dispositivos llegarn a estar tan extendidos en los objetos de cada da que apenas nos daremos cuenta de ellos. Computacin ubicua La presencia de computadores en cualquier parte slo ser til cuando se puedan comunicar entre s.
Ejemplo: Controlar lavadora y equipo desde un dispositivo de control remoto universal en su casa, del mismo modo la lavadora podra avisar al usuario a travs de una tarjeta inteligente o reloj cuando el lavado hubiera finalizado.
Los usuarios acostumbrados a los beneficios de compartir recursos que pueden pasar por alto sus significado.
Compartimos recursos: Hw: impresoras, discos (para reducir costes) Datos: (recursos de alto nivel) ficheros, Base de Datos compartida Con una funcionalidad ms especfica: mquinas de bsqueda o un conversor de monedas
RECURSOS COMPARTIDOS Y WEB GROUPWARE El patrn de compartir y la distribucin geogrfica de los usuarios particulares determina que mecanismos debe proporcionar el sistema para coordinar sus acciones. Gestiona una coleccin de recursos relacionados y presenta su funcionalidad a los usuarios y aplicaciones Ejemplos: Servicio de ficheros: accedemos a ficheros compartidos Servicio de impresin: enviamos documentos a las impresoras. Servicio de pago electrnico: compramos regalos, libros Servicio El nico acceso que tenemos al servicio es mediante un conjunto de operaciones que el ofrece, entonces los servicios limitan el acceso a los recursos.
Los recursos en un sistema distribuido estn encapsulados fsicamente en los computadores y solo pueden ser accedidos desde otros computadores a travs de comunicacin.
Cada recurso debe ser gestionado por un programa que ofrece una interfaz de comunicacin permitiendo que se acceda y actualice el recurso de forma fiable y consistente. Programa en ejecucin (un proceso) en un computador en red que acepta peticiones de programas que se estn ejecutando en otros computadores para realizar un servicio y responder adecuadamente. Servidor Procesos solicitantes Cliente Las peticiones se envan a travs de mensajes desde el Cliente al Servidor Las contestaciones se envan mediante mensajes desde el servidor a los cliente. Mensajes Interaccin completa entre un cliente y un servidor, desde el instante en el que el cliente enva su peticin hasta que recibe la respuesta del servidor. Invocacin remota Los ejemplos mencionados pretenden ilustrar: El alcance de los sistemas distribuidos y Sugerir las cuestiones que aparecen en su diseo.
Los desafos que se discuten a continuacin estn ya resueltos, pero los futuros diseadores necesitan estar al tanto y tener cuidado de considerarlos. DESAFIOS La construccin de los sistemas distribuidos presenta muchos desafos:
Heterogeneidad Extensibilidad Seguridad Escalabilidad Tratamiento de fallos Concurrencia Transparencia Internet permite que los usuarios accedan a servicios y ejecuten aplicaciones sobre un conjunto heterogneo de redes y computadores.
Esta heterogeneidad se aplica a todos los siguientes elementos: Variedad de diferentes redes (diferencias se encuentran enmascaradas dado que todos los computadores conectados utilizan los protocolos de Internet para comunicarse una con otra) Hw de computadoras (Los tipos de datos pueden representarse de diferente forma en diferentes clases de Hw.) Sistemas operativos. Lenguajes de programacin (programas escritos en diferentes lenguajes de programacin sean capaces de comunicarse entre ellos) Implementacin de diferente s desarrolladores (programas escritos por diferentes programadores no podrn comunicarse entre s a menos que utilicen estndares comunes.) HETEROGENEIDAD (Variedad y Diferencia) EXTENSIBILIDAD (Aadir y Quitar) Caracterstica que determina si el sistema puede ser extendido y reimplementado.
Se determina por el grado en el cual se pueden aadir nuevos servicios de comparticin de recursos y ponerlos a disposicin para el uso por una variedad de programas cliente.
No es posible obtener extensibilidad a menos que la especificacin y la documentacin de las interfaces software clave de los componentes de un sistema estn disponibles para los desarrolladores de software.
La integracin de componentes escritos por diferentes programadores es un autentico reto. Sistemas Distribuidos Abiertos
La seguridad de los recursos de informacin: tiene tres componentes: Confidencialidad: Proteccin contra el descubrimiento por individuos no autorizados Integridad: Proteccin contra la alteracin o corrupcin Disponibilidad: Proteccin contra interferencia con los procedimientos de acceso a los recursos. SEGURIDAD Un medico puede solicitar acceso a los datos hospitalarios de un paciente o enviar modificaciones sobre ellos. En comercio electrnico y banca, los usuarios envan su nmero de tarjeta de crdito a travs de Internet.
Reto 1: Enviar informacin sensible en un mensaje por la red de forma segura.
Pero la seguridad no slo es cuestin de ocultar los contenidos de los mensajes, tambin consiste en conocer con certeza la identidad del usuario del cual se enva el mensaje.
Reto 2: Identificar un usuario remoto u otro agente correctamente
Ambos desafos pueden lograrse a travs de tcnicas de encriptacin desarrolladas al efecto. Sin embargo, an existen dos desafos de seguridad que no han sido asistidos completamente:
1. Ataques de denegacin de servicio: 2. Seguridad del cdigo mvil
1. Ocurre cuando un usuario desea obstaculizar un servicio por alguna razn. Esto se obtiene al bombardear el servicio con un nmero suficiente de peticiones intiles de modo que los usuarios sean incapaces de utilizarlo.
2. Suponga que alguien recibe un programa ejecutable adherido a un correo electrnico.
Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en el nmero de recursos y el nmero de usuarios. El sistema debe ser capaz de admitir ms recursos y clientes sin cambiar el modelo Para que un sistema sea escalable debe ser extensible
Internet es un sistema distribuido en el que el nmero de computadoras y servicios experimenta un dramtico incremento.
ESCALABILIDAD Mapa parcial de Internet basado en la informacin obtenida del sitio opte.org en 2005. Los sistemas computacionales a veces fallan. Fallos de Hw o Sw (Los programas pueden producir resultados incorrectos o pudieran parar antes de haber completado el clculo pedido.) Los fallos en un sistema distribuido son parciales. Algunos componentes fallan mientras otros siguen funcionando.
Tcnicas para tratar fallos. Deteccin de fallos Enmascaramiento de fallos Tolerancia de Fallos Recuperacin frente a fallos Redundancia
Tratamiento de Fallos Sus interfaces estn publicadas.
Se basan en la providencia de un mecanismo de comunicacin uniforme e interfaces pblicas para acceder a recursos compartidos
Pueden construirse con Hw y Sw heterogneo posiblemente de diferentes proveedores. Sistemas distribuidos abiertos: Algunos fallos son detectables. Por ejemplo: para detectar datos corruptos en un mensaje o un archivo se puede utilizar checksums (sumas de comprobacin).
Es difcil o incluso imposible detectar algunos otros fallos como la cada de un servidor remoto en Internet.
Deteccin de Fallos Algunos fallos que han sido detectados pueden ocultarse o atenuarse. Ejemplos de ocultacin de fallos Los mensajes pueden retransmitirse cuando falla la recepcin. 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. Ejemplo de atenuacin de fallos Eliminar un mensaje corrupto Enmascaramiento de fallos La mayora de los servicios de internet exhiben fallos; es posible que no sea prctico para ellos pretender detectar y ocultar todos los fallos que pudieran aparecer en una red tan grande y con tantos componentes. Sus clientes pueden disearse para tolerar ciertos fallos, lo que implica que tambin los usuarios tendrn que tolerarlos generalmente Ej: cuando un visualizador web no puede contactar con un servidor web no har que el cliente tenga que esperar indefinidamente mientras hace sucesivos intentos; informar al usuario del problema, dndole la libertad de intentarlo ms tarde. Tolerancia de Fallos Implica el diseo de software en el que, tras una cada del servidor , el estado de los datos puede reponerse o retractarse (roll back) a una situacin anterior. Ejemplo: los clculos realizados por algunos programas se encontraran incompletos y al actualizar datos permanentes pudiera encontrarse en un estado inconsistente.
Recuperacin frente a fallos Puede lograrse que los servicios toleren fallos mediante el empleo redundante de componentes. Siempre deber haber al menos dos rutas diferentes entre cualesquiera dos routers de 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 fallos de cualquier servidor concreto. Redundancia Varios clientes intenten acceder a un recurso compartido a la vez.
El proceso que administra un recurso compartido puede atender las peticiones de cliente una por una, pero esta aproximacin limita el ritmo de produccin del sistema. Por esto los servicios y aplicaciones permiten usualmente procesar concurrentemente mltiples peticiones de los cliente. Cada objeto que represente un recurso compartido en un SD debe responsabilizarse de garantizar que opera correctamente en un entorno concurrente. Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes.
CONCURRENCIA Ocultacin al usuario y al Programador de Aplicaciones de la separacin de los componentes en un SD de forma que se perciba el sistema como un todo ms que como una coleccin de componentes independientes.
El objetivo es que ciertos aspectos de la distribucin sean invisibles de modo que slo necesite ocuparse del diseo de su aplicacin particular. Por ejemplo, no debe ocuparse de su ubicacin o los detalles sobre cmo se accede a sus operaciones por otros componente, o si ser replicado o migrado.