Consultas www.sistemas-distribuidos.3a2.com Bibliografa Tonenbaum, Andrew -sistemas operativos distribuidos Colouris, George sistemas distribuidos Stalling, Williams comunicaciones y redes de computadoras Concepto 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, adems es una coleccin de computadoras independientes que aparecen ante los usuarios del sistema como una nica computadora, colaboran para la obtencin de un resultado y estn basados en las caractersticas de transparencia, eficiencia, flexibilidad, escalabilidad y fiabilidad. El objetivo principal de los Sistemas Distribuidos es el mejor desempeo, mayor fiabilidad y disponibilidad, comparticin de recursos e informacin, adems del mejoramiento de la comunicacin, mayor adaptabilidad (ms natural, distribucin de carga, etc.). Algunas caractersticas Concurrencia En una red de computadoras, la ejecucin de programas concurrentes es la norma Inexistencia de reloj global Cuando los programas necesitan coordinar sus acciones mediante el intercambio de depende a menudo de una idea compartida del instante en el que ocurren las acciones de los programas. No existe una nocin global del tiempo correcto Fallos independientes Todos los sistemas pueden fallar y los diseadores tienen la responsabilidad de planificar las consecuencias de los posibles fallos. Los fallos en red producen el aislamiento de los computadores conectados a l. Pero eso no significa que se detenga su ejecucin. Cada componente puede fallar independientemente permitiendo q los dems continen su ejecucin. Utilizar sistemas distribuidos tiene su origen en compartir recursos.
Recurso Se entiende desde los componentes de hadware como discos, impresoras hasta las entidades de software definidos como archivos, base de datos y objetos de datos. Incluyen secuencias de imgenes y audio como llamadas telefnicas Recursos compartidos y web En la prctica los patrones de compartir recursos varan mucho en su alcance y cuan estrechamente trabajan los usuarios. En un extremo una mquina de bsqueda en la web y en el otro extremo un sistema de trabajo cooperativo mantenido por computador. El patrn compartir y la distribucin geogrfica de los usuarios determina q mecanismos debe proporcionar el sistema para coordinar sus acciones. Servicios Un servicio gestiona una coleccin de recursos relacionados y presenta su funcionalidad a los usuarios y aplicaciones. El nico acceso al servicio es mediante un conjunto de operaciones q el ofrece. El termino servidor se refiere a un programa en ejecucin (proceso) en un computador, conectado a una red q acepta peticiones y brinda servicios a procesos solicitantes (clientes). Cliente y servidor se refiere a los procesos, no a las computadores q lo ejecuten. INTERNET
Internet es una vasta coleccin de redes de computadas de diferentes tipos interconectados. El diseo y la construccin de los mecanismos de comunicacin Internet (los protocolos Internet) es una realizacin tcnica fundamental, que permite que un programa que se est ejecutando en cualquier parte dirija mensajes a programas en cualquier otra parte. Internet es tambin un sistema distribuido muy grande, permite a los usuarios hacer uso de servicios como el World Wide Web, el correo electrnico, y la transferencia de ficheros. A veces se confunde incorrectamente el Web con Internet. El conjunto de servicios es abierto, puede ser extendido por la adicin de los servidores y nuevos tipos de servicios. Los proveedores de servicios de Internet (ISP) son empresas que proporcionan enlaces de mdem y otros tipos de conexin a usuarios individuales y pequeas organizaciones. Las intranets estn enlazadas conjuntamente por conexiones troncales (backbone). Una conexin o red troncal es un enlace de red con una gran capacidad de transmisin, que puede emplear conexiones de satlite, cables de fibra ptica y otros circuitos de gran ancho de banda. En Internet hay disponibles servicios multimedia, que permite a los usuarios el acceso de datos de audio y video.
INTRANETS
Una Intranet es una porcin de Internet que es administrada separadamente y que tiene un lmite que puede ser configurado para hacer cumplir polticas de seguridad local. Est compuesta de varias redes de rea local (LANs) enlazadas por conexiones backbone. La configuracin de red de una Intranet particular es responsabilidad de la organizacin que la administra. 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 y acceder a los servicios que ella proporciona a los usuarios de otras intranets. Muchas organizaciones necesitan proteger sus propios servicios frente al uso no autorizado de programa nocivos. El papel del cortafuegos es proteger una intranet impidiendo que entren o salgan mensajes no autorizados.
COMPUTACIN MOVIL Y UBICUA
La computacin ubicua y mvil se solapan. Pero, son distintas. La computacin ubicua podr beneficiar a los usuarios mientras permanecen en un entorno sencillo como su casa o un hospital. De forma similar, la computacin mvil tiene ventajas si slo se consideran computadores convencionales y dispositivos como computadores porttiles e impresoras. Worl Wide web Sistema en evolucin para publicar y acceder a recursos y servicios a travs de internet. Utiliza un software El navegador web. Una caracterstica fundamental de web es q proporciona una estructura de hipertexto entre los documentos q almacena. Esto significa q los documentos tienen enlaces referencias a otros documentos y recursos tambin almacenados en la red el web es un sistema abierto puede ser ampliado e implementado en nuevas formas sin modificar su normalidad existente. Los navegadores estn diseados acomodar la nueva funcionalidad de presentacin por medio de aplicaciones colaboradores y conectores llamados (plug-in) (Www, html, url-uri, http) Html.- Lenguaje de hipertexto se utiliza para especificar el texto, imagines, etc. Que forman el contenido de una pgina web y adems especifica la forma de presentacin al usuario utiliza enlaces para acceder a los recursos para utilizar este lenguaje se puede realizar su codificacin en cualquier editor de texto El texto de Html se almacena en un archivo que puede ser accedido desde un servidor web el navegador interpreta el contenido del archivo de Html HTTP.- Protocolo de transferencia de hipertexto define la forma en que los navegadores t otro tipo de clientes interaccionan con los servidores web. La interaccin es de peticin y respuesta. El cliente enva un mensaje de peticin al servidor q contiene la url-uri del recurso solicitado. El servidor localiza el recurso y si existe devuelve el contenido del archivo en un mensaje de respuesta al cliente: caso contrario devuelve un mensaje de error. Se tiene diferentes tipos para plantear el control de acceso el mismo consiste en configurar el servidor para plantear un desafo a cualquier usuario a probar su actividad por ejemplo por medio de una contrasea para acceder al recurso al cual tiene derecho URLs. El propsito de un URL es identificar un recurso de tal forma que permita al navegador localizarlo. Cada URL, en su forma global, tiene dos componentes:
Esquema: localizacin-especfica-del-esquema.
El primer componente, el esquema, declara qu tipo de URL es. Se precisan los URLs para especificar posiciones de una variedad de recursos y tambin para especificar una variedad de protocolo de comunicacin para recuperarlos. El Web es abierto con respecto a los tipos de recursos que pueden ser utilizados para acceder, mediante los designadores de esquema de los URLs. Si alguien inventa un nuevo tipo de recurso llammoslo artefacto. Como es lgico, los navegadores deben disponer de la capacidad para utilizar el nuevo protocolo artefacto, pero esto se puede conseguir aadiendo una aplicacin colaboradora o conector. Un URL http tiene dos tareas importantes que hacer: identificar qu servidor Web mantiene el recurso, e identificar cul de los recursos del servidor es solicitado. En general, los URLs de http son de la forma: http://nombredelservidor [ :puerto] [/nombredelpathdelservidor] [?argumentos]
Algunas caractersticas, servicios y pginas dinmicas Los formularios web son pginas que contienen instrucciones para el usuario y elementos para introduccin de datos como campos de texto y caja de comprobacin. El navegador enva una peticin http a un servidor web que contiene los valores enviados por el usuario. Puesto que el resultado depende de los datos introducidos al servidor debe procesar dichos datos. Para este caso la url representa un programa en el servidor y no asi un archivo. Ejm: http://www.google.com/search?9=emi (El programa search se ejecuta con el argumento emi) El contenido esttico o dinmico es transparente otro programa que genera contenido para los clientes el CGI (Common Gateway interfaz) interfaz de pasarela comn se ejecuta en el servidor y consulta y modifica una base de datos al procesar una solicitud. Cdigo descargado Una pgina mejorada ej: de java script donde usuarios valida las entradas antes de enviar la informacin peticion
Respuesta S: Servidor C: Cliente
HETEROGENEIDAD. Internet permite que los usuarios accedan a servicios y ejecuten aplicaciones sobre un conjunto heterogneo de redes y computadores. Esta heterogeneidad (es decir, variedad y diferencia) se aplica a todos los siguientes elementos: o Redes. o Hardware de computadores. o Sistemas operativos. o Lenguajes de programacin. o Implementaciones de diferentes desarrolladores. Middleware: el trmino middleware se aplica al estrato software que provee una abstraccin de programacin, as como un enmascaramiento de la heterogeneidad subyacente de las redes, hardware, sistemas operativos y lenguajes de programacin. La mayora de middleware se implementa sobre protocolos de internet, enmascarando stos la diversidad de redes existentes. An as cualquier middleware trata con las diferencias de sistema operativo y hardware. El midleware proporciona un modelo computacional uniforme al enlace de los programadores de servidores y aplicaciones distribuidas. Los posibles modelos incluyen invocacin sobre objetos remotos, acceso remoto mediante SQL y procesamiento distribuido de transacciones.
C s Heterogeneidad y cdigo civil: el trmino cdigo mvil se emplea para referirse al cdigo que puede ser enviado desde un computador a otro y ejecutarse en ste. Dado que el conjunto de instrucciones de un computador depende del hardware, el cdigo de nivel de mquina adecuado para correr en un tipo de computador no es adecuado para ejecutarse en otro tipo. EXTENSIBILIDAD. La extensibilidad de un sistema de cmputo es la caracterstica 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 aadir nuevos servicios de comparticin de recursos y ponerlos a disposicin para el uso por una variedad de programas cliente. En resumen:
Los sistemas abiertos se caracterizan porque sus interfaces estn publicadas. Los sistemas distribuidos abiertos se basan en la providencia de un mecanismo de comunicacin uniforme e interfaces pblicas para acceder a recursos compartidos. Los sistemas distribuidos abiertos pueden construirse con hardware y software heterogneo, posiblemente de diferentes proveedores. Sin embargo, la conformidad con el estndar publicado de cada componente debe contrastarse y verificarse cuidadosamente si se desea que el sistema trabaje correctamente. SEGURIDAD. La seguridad de los recursos de informacin tiene tres componentes: confidencialidad, integridad y disponibilidad.
Existen dos desafos de seguridad que no han sido cumplimentados completamente:
Ataques de denegacin de servicio: otro problema de seguridad 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 serios sean incapaces de utilizarlo. A esto se le denomina ataque de denegacin de servicio.
Seguridad del cdigo mvil: el cdigo mvil necesita ser tratado con cuidado. Suponga que alguien recibe un programa ejecutable adherido a un correo electrnico: los posibles efectos al ejecutar el programa son impredecibles: por ejemplo, pudiera parecer que presentan un interesante dibujo en la pantalla cuando en realidad estn interesados en el acceso a los recursos locales, o quizs pueda ser parte de un ataque de denegacin de servicio. ESCALABILIDAD.
Los sistemas distribuidos operan efectiva y eficientemente en muchas escalas diferentes, desde pequeas intranets a Internet. 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. Internet proporciona un ejemplo de un sistema distribuido en el que el nmero de computadores y servicios experimenta un dramtico incremento.
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 pudieran parar antes de haber completado el clculo pedido.
Los fallos en un sistema distribuido son parciales; es decir, algunos componentes fallan mientras otros siguen funcionando.
Los sistemas distribuidos proporcionan un alto grado de disponibilidad frente a los fallos del hardware. La disponibilidad de un sistema mide la proporcin de tiempo en que est utilizable. Cuando falla algn componente del sistema distribuido solo resulta afectado el trabajo relacionado con el componente defectuoso. As como cuando un computador falla el usuario puede desplazarse a otro, tambin puede iniciarse un proceso de servicio en otra ubicacin. 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. Cada objeto que represente un recurso compartido en un sistema distribuido debe responsabilizarse de garantizar que opera correctamente en un entorno concurrente. De este modo cualquier programador que recoge una implementacin de un objeto que no est concebido para su aplicacin en un entorno distribuido deber realizar las modificaciones necesarias para que sea seguro su uso en el entorno concurrente. Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes. Esto puede lograrse mediante el empleo de tcnicas conocidas como los semforos, que se usan en la mayora de los sistemas operativos. TRANSPARENCIA. Se define transparencia como la ocultacin al usuario y al programador de aplicaciones de la separacin de los componentes en un sistema distribuido, de forma que se perciba el sistema como un todo ms que como una coleccin de componentes independientes. Las implicaciones de la transparencia son de gran calado en el diseo del software del sistema Ventajas de los Sistemas Distribuidos con Respecto a los Centralizados Una razn para la tendencia hacia la descentralizacin es la economa. Herb Grosch formul la que se llamara Ley de Grosch [25, Tanenbaum]: El poder de cmputo de una cpu es proporcional al cuadrado de su precio: o Si se paga el doble se obtiene el cudruple del desempeo. Fue aplicable en los aos setentas y ochentas a la tecnologa mainframe. No es aplicable a la tecnologa del microprocesador: o La solucin ms eficaz en cuanto a costo es limitarse a un gran nmero de cpu baratos reunidos en un mismo sistema. Los sistemas distribuidos generalmente tienen en potencia una proporcin precio / desempeo mucho mejor que la de un nico sistema centralizado. Algunos autores distinguen entre: Sistemas distribuidos: estn diseados para que muchos usuarios trabajen en forma conjunta. Sistemas paralelos: estn diseados para lograr la mxima rapidez en un nico problema. En general se consideran sistemas distribuidos, en sentido amplio, a los sistemas en que: Existen varias cpu conectadas entre s. Las distintas cpu trabajan de manera conjunta. Ciertas aplicaciones son distribuidas en forma inherente: Ej.: sistema de automatizacin de una fbrica: o Controla los robots y mquinas en la lnea de montaje. o Cada robot o mquina es controlado por su propia computadora. o Las distintas computadoras estn interconectadas. Una ventaja potencial de un sistema distribuido es una mayor confiabilidad: Al distribuir la carga de trabajo en muchas mquinas, la falla de una de ellas no afectara a las dems: o La carga de trabajo podra distribuirse. Si una mquina se descompone: o Sobrevive el sistema como un todo. Otra ventaja importante es la posibilidad del crecimiento incremental o por incrementos: Podran aadirse procesadores al sistema, permitiendo un desarrollo gradual segn las necesidades. No son necesarios grandes incrementos de potencia en breves lapsos de tiempo. Se puede aadir poder de cmputo en pequeos incrementos. Ventajas de los Sistemas Distribuidos con Respecto a las PC Independientes Satisfacen la necesidad de muchos usuarios de compartir ciertos datos [25, Tanenbaum] : Ej.: sistema de reservas de lneas areas. Tambin con los sistemas distribuidos se pueden compartir otros recursos como programas y perifricos costosos: Ej.: impresoras lser color, equipos de fotocomposicin, dispositivos de almacenamiento masivo (ej.: cajas pticas), etc. Otra importante razn es lograr una mejor comunicacin entre las personas: Ej.: correo electrnico: o Posee importantes ventajas sobre el correo por cartas, el telfono y el fax: Velocidad, disponibilidad, generacin de documentos editables por procesadores de texto, etc. La mayor flexibilidad es tambin importante: La carga de trabajo se puede difundir (distribuir) entre las mquinas disponibles en la forma ms eficaz segn el criterio adoptado (por ej. costos). Los equipos distribuidos pueden no ser siempre PC: o Se pueden estructurar sistemas con grupos de PC y de computadoras compartidas, de distinta capacidad. Desventajas de los Sistemas Distribuidos El principal problema es el software, ya que el diseo, implantacin y uso del software distribuido presenta numerosos inconvenientes [25, Tanenbaum]. Los principales interrogantes son los siguientes: Qu tipo de S. O., lenguaje de programacin y aplicaciones son adecuados para estos sistemas?. Cunto deben saber los usuarios de la distribucin?. Qu tanto debe hacer el sistema y qu tanto deben hacer los usuarios?. La respuesta a estos interrogantes no es uniforme entre los especialistas, pues existe una gran diversidad de criterios y de interpretaciones al respecto. Otro problema potencial tiene que ver con las redes de comunicaciones, ya que se deben considerar problemas debidos a prdidas de mensajes, saturacin en el trfico, expansin, etc. El hecho de que sea fcil compartir los datos es una ventaja pero se puede convertir en un gran problema, por lo que la seguridad debe organizarse adecuadamente. En general se considera que las ventajas superan a las desventajas, si estas ltimas se administran seriamente.