You are on page 1of 217

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090

0 SISTEMAS DISTRIBUIDOS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA PROGRAMA DE INGENIERA DE SISTEMAS

302090 SISTEMAS DISTRIBUIDOS GERARDO GRANADOS ACUA (Director Nacional)

EDUARDO ZAPATA ZAPATA Acreditador

BUCARAMANGA Julio de 2009

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

ASPECTOS DE PROPIEDAD INTELECTUAL Y VERSIONAMIENTO

El presente mdulo fue diseado en el ao 2006 por el Ing. Gerardo Granados Acua, docente de la UNAD, y ubicado en el CEAD de Bucaramanga, el Ing. Granados Ingeniero de Sistemas y Especialista en Telecomunicaciones; se ha desempeado como tutor de la UNAD desde el 2004 hasta el ao 2009 y ha sido catedrtico de diversas Universidades de Santander. El presente mdulo ha tenido dos actualizaciones, desarrolladas por el mismo ing. Granados en los aos 2007 y 2008. Las actualizaciones han estado principalmente enfocadas a incluir nuevos tpicos que han adquirido mayor importancia dentro del desarrollo de los sistemas distribuidos, tales como los agentes inteligentes, las bases de datos distribuidas, la web semntica y el middleware. Este mismo ao el Ing. EDUARDO ZAPATA ZAPATA, tutor del CEAD Ocaa, apoy el proceso de revisin de estilo del mdulo y dio aportes disciplinares, didcticos y pedaggicos en el proceso de acreditacin de material didctico desarrollado en el mes de JULIO de 2009.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

INTRODUCCIN

Anualmente el Instituto Tecnolgico de Massachussets (MIT), el ms reconocido centro de investigacin a nivel mundial, presenta una lista de las diez tecnologas de mayor futuro, y, para satisfaccin de quienes comienzan a trabajar con el presente mdulo, en los ltimos aos se han destacado tres innovadoras tecnologas: las redes de sensores inalmbricos, los sistemas de computacin distribuida y el almacenamiento distribuido. Todas estas tecnologas forman parte integral del campo de los Sistemas Distribuidos (SD) y es as, que muchas de las aplicaciones y avances tecnolgicos de nuestra sociedad se han visto acelerados por la evolucin de las tecnologas de informacin distribuida y, como ejemplo caracterstico, tenemos a Internet, la mayor red de informacin distribuida a nivel mundial. Lo expuesto hasta aqu, apunta a reconocer la importancia de los Sistemas Distribuidos como un elemento fundamental, que deben conocer y aplicar los profesionales que trabajan en el desarrollo de las ciencias de la informacin y en especial de quienes implementan y utilizan aplicaciones basadas en las tecnologas de la informacin y de las comunicaciones. Los SD son una evolucin de los sistemas centralizados los cuales, con el surgimiento de las redes de informacin, se vieron en la necesidad de expandir su alcance y cobertura. Debido a ello, emergieron conceptos como sistemas operativos distribuidos, memoria distribuida, almacenamiento distribuido y aplicaciones distribuidas, entre otros. Muchas de las facilidades de nuestra vida diaria estn siendo soportadas por SD. Por citar algunos casos tenemos que el uso de la tecnologa de comunicacin celular se fundamenta en una red distribuida de clulas de procesamiento de llamadas, los sistemas de cajeros electrnicos se apoyan en bases de datos distribuidas y el correo electrnico es un sistema distribuido de almacenamiento y envo de informacin. Adems de lo anterior, tenemos innumerables aplicaciones que usan sistemas distribuidos y que sern la base de la computacin mvil (ubicua), la computacin distribuida y los servicios web, tecnologas revolucionarias que sern parte de la transformacin de nuestra sociedad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El curso de Sistemas Distribuidos ofrecido por la Facultad de Ciencias Bsicas e Ingenieras de la UNAD, tiene asignados 3 crditos acadmicos y corresponde al campo de formacin Electivo del Programa de Ingeniera de Sistemas. Tiene un carcter metodolgico pues se espera que el estudiante asimile los elementos conceptuales y los aplique en la formulacin de su proyecto utilizando tecnologa computacional. A travs del desarrollo de las diferentes unidades temticas se pretende que el estudiante adquiera los fundamentos conceptuales de los SD, su uso y los requerimientos para su desarrollo. Tambin se busca que el estudiante adquiera las destrezas necesarias para formular, planear y ejecutar proyectos que involucren tecnologas de SD. El presente mdulo se ha estructurado en tres unidades temticas que abarcan los aspectos ms relevantes e implcitos en el campo de los SD. Estas unidades son en su orden: fundamentos de sistemas distribuidos, arquitectura de un sistema distribuido y aplicaciones distribuidas. En la primera unidad se abordan los aspectos conceptuales necesarios para iniciar el estudio de los SD. Se presentan los componentes de un sistema distribuido, las principales caractersticas as como los tipos de sistemas distribuidos. La segunda unidad expone los elementos claves que conforman la arquitectura de un sistema distribuido. Se analizan los modelos de sistemas distribuidos (cliente/servidor, P2P, componentes), el concepto de middleware (lgica de la mediacin) y los aspectos de diseo y seguridad en sistemas distribuidos. El mdulo finaliza con una unidad destinada a presentar las principales aplicaciones distribuidas. Se estudian el sistema operativo distribuido CORBA, los sistemas de archivos distribuidos, los servicios web y otras aplicaciones distribuidas como el sistema de nombres de dominio (DNS) y los sistemas de gestin distribuida. Teniendo en cuenta que la mayora de los desarrollos en las tecnologas que soportan los SD, tienen su origen en los pases industrializados y en especial en los pases angloparlantes, se han incluido los trminos en ingls de uso comn para referirse a las tecnologas que se utilizan en los SD. Es por ello que se encontrarn expresiones como middleware, router, kernel, backbone, cluster, mainframe, host, applet, socket y muchas otras que estn referenciadas a largo del mdulo, con la consideracin de haber incluido la traduccin correspondiente y un glosario de ampliacin de conceptos al final del mdulo.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Adems, considerando la cantidad de siglas, abreviaturas y acrnimos que constantemente se manejan al profundizar en los diversos tpicos de los SD, se ha incluido un glosario de siglas con aproximadamente ochenta (80) tems con su correspondiente traduccin. Todo lo anterior con el fin de familiarizar y facilitar el uso de los trminos, as como evitar emplear tiempo valioso en bsquedas externas. Para dar una mayor claridad a los temas tratados, en el presente mdulo se han incluido ms de cien (100) figuras ilustrativas, tanto importadas como de autora personal, con su correspondiente explicacin dentro del texto. Se espera que las mltiples experiencias que se realicen a lo largo del curso cumplan con las expectativas planteadas en ste mdulo didctico, de forma que al finalizar, el estudiante se sienta con las bases tericas y metodolgicas que le permitan formular, realizar o hacer parte de grupos de trabajo que implementen SD.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

INDICE DE CONTENIDO
Pgina

UNIDAD 1. FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS CAPITULO 1: COMPONENTES DE UN SISTEMA DISTRIBUIDO Leccin 1: Introduccin y Conceptos Leccin 2: Objetivos de un Sistema Distribuido Leccin 3: Comunicacin en los Sistemas Distribuidos Leccin 4: Ventajas y desventajas de los Sistemas Distribuidos CAPITULO 2: CARACTERIZACIN DE LOS SISTEMAS DISTRIBUIDOS Leccin 5: Heterogeneidad Leccin 6: Extensibilidad Leccin 7: Seguridad Leccin 8: Escalabilidad Leccin 9: Tratamiento de fallos Leccin 10: Concurrencia Leccin 11: Transparencia CAPITULO 3: TIPOS DE SISTEMAS DISTRIBUIDOS Leccin 12: Internet Leccin 13: Intranet Leccin 14: Computacin mvil y ubicua Leccin 15: Computacin Distribuida UNIDAD 2. ARQUITECTURA DE UN SISTEMA DISTRIBUIDO CAPITULO 1: MODELOS DE SISTEMAS DISTRIBUIDOS Leccin 1: Modelo Cliente/Servidor Leccin 2: Tipos de arquitecturas cliente-servidor Leccin 3: Redes Igual Igual (P2P) Leccin 4: Modelos de Componentes CAPITULO 2: MIDDLEWARE Leccin 5: Fundamentos de Middleware Leccin 6: Componentes Middleware Leccin 7: Servicios Middleware Leccin 8: Ventajas y campos de aplicacin del Middleware

12 14 14 16 18 28 30 30 33 35 37 40 42 42 46 46 48 50 53 60 62 62 66 72 78 81 81 84 85 87

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 3: ASPECTOS DE DISEO DE UN SISTEMA DISTRIBUIDO Leccin 9: Comunicacin entre procesos Leccin 10: Comunicacin entre procesos en plataformas UNIX LINUX Leccin 11: Objetos distribuidos e invocacin remota CAPITULO 4: ASPECTOS DE SEGURIDAD EN UN SISTEMA DISTRIBUIDO Leccin 12: Polticas de Seguridad, Mecanismos de Proteccin Leccin 13: Criptografa Leccin 14: Seguridad con Cortafuegos Leccin 15: Servidor proxy UNIDAD 3. APLICACIONES DISTRIBUIDAS CAPITULO 1: SISTEMAS OPERATIVOS DISTRIBUIDOS - CORBA Leccin 1: Fundamentos de CORBA Leccin 2: Caractersticas de CORBA Leccin 3: Los servicios y componentes de CORBA Leccin 4: Introduccin a IDL CAPITULO 2: SISTEMAS DE ARCHIVOS DISTRIBUIDOS Leccin 5: Caractersticas de los Sistemas de Archivos Leccin 6: Requisitos del sistema de archivos distribuidos Leccin 7: Arquitectura del servicio de archivos Leccin 8: Sistema de archivos de red de SUN (NFS) CAPITULO 3: SERVICIOS WEB Leccin 9: Arquitectura y tecnologas bsicas de los servicios web Leccin 10: Implementacin de los servicios web Leccin 11: Tendencias en servicios web web semntica CAPITULO 4: OTRAS APLICACIONES DISTRIBUIDAS Leccin 12: Fundamentos de DNS Leccin 13: IPv6 El Direccionamiento del Futuro Leccin 14: Introduccin a la Gestin Distribuida Leccin 15: Sistema de Gestin Distribuida Glosario de Acrnimos Glosario de Trminos Fuentes Documentales

89 89 95 101

106 108 113 118 125 131 133 133 135 139 142 148 149 152 155 158 168 170 178 180 181 181 187 189 193 203 207 215

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

LISTADO DE GRFICOS Y FIGURAS


Pg. Figura 1. Sistema Distribuido Figura 2. Sistema Distribuido Multimedia Figura 3. Sincronizacin en Red Figura 4. Fallos Independientes Figura 5. Agentes Figura 6. Agentes Mviles Figura 7. Agentes de Recuperacin de Informacin Figura 8. Googlebot Figura 9. Heterogeneidad de Sistemas Distribuidos Figura 10. Heterogeneidad y Cdigo Mvil Figura 11. Extensibilidad en un Sistema Distribuido Figura 12. Seguridad Figura 13. Crecimiento de Internet en los ltimos aos Figura 14. Red Internet Figura 15. Red Intranet Figura 16. Dispositivos mviles en un Sistema Distribuido Figura 17. Velocidad de los procesadores Figura 18. Usos de la Computacin Distribuida Figura 19. Ejemplo de Computacin Distribuida 15 16 18 18 20 25 26 29 32 33 34 37 38 48 50 51 54 55 56

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Figura 20. Comunicacin Cliente/Servidor Figura 21. Procesos Cliente/Servidor Figura 22. Paso de Mensajes Figura 23. Arquitectura Cliente/Servidor Monoltica Figura 24. Arquitectura Cliente/Servidor de dos capas Figura 25. Arquitectura Cliente/Servidor de tres capas Figura 26. Modelo Peer-to-Peer Figura 27. Redes P2P centralizadas Figura 28. Redes P2P Descentralizadas Figura 29. Redes P2P hibridas Figura 30. Operacin Tabla Hash Figura 31. Modelo de componentes de SUN Figura 32. Modelo de componentes distribuidos de Microsoft Figura 33. Middleware Figura 34. Middleware y APIs Figura 35. Sistema distribuido visto como Middleware Figura 36. Comunicacin entre Procesos Figura 37. Sistema Cliente/Servidor con Paso de Mensajes Figura 38. API para protocolos en Internet Figura 39. Sockets Figura 40. Operacin de los protocolos TCP y UDP Figura 45. Conectores usados para Datagramas Figura 46. Conectores usados para Flujos Figura 47. Operacin RPC Figura 48. Operacin de Java RMI Figura 49. Evolucin de las Necesidades de Seguridad

63 64 68 68 69 71 73 75 76 77 78 80 81 82 83 84 90 92 93 95 96 98 100 102 105 107

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Figura 50. Amenazas a la Seguridad Figura 51. Emisor, Receptor e Intruso Figura 52. Ataques a la seguridad Figura 53. Criptografa Figura 54. Modelo de Criptografa Figura 55. Algoritmo PGP Figura 56. Cortafuegos (Firewall) Figura 57. Cortafuegos con Filtrado de Paquetes Figura 58. Cortafuegos en combinacin con pasarela de aplicacin Figura 59. Servidor Proxy Figura 60. Cdigo generado en CORBA Figura 61. Categoras de Interfaz OMA. Figura 62. Componentes de CORBA Figura 63. El Papel de IDL Figura 64. Encapsulamiento IDL Figura 65. Desarrollo IDL con Java Figura 66. Desarrollo IDL con c++ Figura 67. Ejemplo de interfaz IDL Figura 68. Desarrollo de aplicaciones con CORBA Figura 69. CORBA, Java y la WEB Figura 70. Estructura del registro de atributos de un archivo Figura 71. Mdulos de un sistema de archivos Figura 72. Operaciones del sistema de archivo de LINUX-UNIX Figura 73. Arquitectura del Servicio de Archivos Figura 74. Operaciones del servicio de archivos plano Figura 75. Arquitectura NFS

108 110 113 114 115 117 120 122 124 127 139 140 142 144 145 145 146 146 147 148 150 151 152 156 158 160

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Figura 76. Apuntador de archivo Figura 77. Operaciones del Servidor NFS (simplificado) Figura 78. Sistemas de archivos loc. y remotos accesibles desde un cliente NFS Figura 79. Niveles de Aplicaciones Web Figura 80. Interaccin de Aplicaciones Web con Objetos Distribuidos Figura 81. Protocolos de Servicios Web Figura 82. Operacin del Protocolo SOAP RPC Figura 83. Ejemplo de Mensaje SOAP Figura 84. Operacin SOAP Proceso cliente Figura 85. Operacin SOAP Proceso Servidor Figura 86. Elementos WSDL Figura 87. Integracin WSDL - UDDI Figura 88. Ejemplo de WSFL Figura 89. Ejemplo de Servicios Web Figura 90. Consulta en Web Semntica Figura 91. Rango de Direcciones IPv4 Figura 92. Base de datos DNS vs Sistema de Archivos LINUX-UNIX Figura 93. Leyendo nombres en DNS y LINUX-UNIX Figura 94. Lista de dominios de nivel superior Figura 95. Administracin y delegacin de un dominio Figura 96. Zonas DNS Figura 97. Operacin DNS Figura 98. IPv6 encapsulado en IPv4 Figura 99. Gestin Distribuida Figura 100. Sistema de Gestin Distribuida Figura 101. Arquitectura del Software de Gestin Distribuida

161 164 166 169 170 181 174 174 175 175 176 177 178 179 181 183 183 184 185 186 187 188 189 190 194 196

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

UNIDAD 1
Nombre de la Unidad Introduccin

FUNDAMENTOS DE SISTEMAS DISTRIBUIDOS


La presente unidad se compone de tres captulos introductorios, organizados de tal manera que se inicie con un conjunto de definiciones bsicas y poco a poco se incremente el nivel de complejidad. En el primer captulo se analizan los principales componentes de un sistema distribuido y en particular aspectos como la concurrencia, la sincronizacin y manejo de fallas. Adems se presenta el concepto de agente y su importancia en un sistema distribuido. El siguiente capitulo expone de manera detallada las siete (7) principales caractersticas de un sistema distribuido: heterogeneidad, extensibilidad, seguridad, escalabilidad, tratamiento de fallos, concurrencia y transparencia. Cada uno de estas caractersticas se apoya en diversas definiciones y ejemplos. La unidad finaliza con un captulo explicativo de los diferentes tipos y ejemplos de sistemas distribuidos. Se detallan sistemas como internet e intranet y se indican los fundamentos tanto para la computacin mvil, como para la computacin distribuida, estas ltimas con un desarrollo y una evolucin sin precedentes en nuestra sociedad actual. Bienvenido a esta primera unidad y espero que sus contenidos sean de inters para su desarrollo profesional en este campo de las ciencias de la informacin. Al igual que con cualquier nuevo tema, para abordar el conocimiento de los Sistemas Distribuidos debemos hacerlo a partir de los fundamentos. Slo as se obtendrn las bases necesarias para ir profundizando en este tema tan interesante. Que el estudiante describa los componentes fundamentales de un sistema distribuido, su relacin y su finalidad, partiendo de la ejemplificacin de diversos

Justificacin

Intencionalidades Formativas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

sistemas distribuidos con diferentes orientaciones y su comparacin con los fundamentos tericos estudiados. Que el estudiante conozca e identifique de manera clara el concepto, propiedades y caractersticas de un sistema distribuido, aplicados a una organizacin, a travs del anlisis de las diversas aplicaciones, tecnologas y servicios de comunicacin que se utilizan. Que el estudiante comprenda la importancia de los sistemas distribuidos para el desarrollo de la sociedad a travs plataformas como internet, intranet, computacin mvil y computacin distribuida. Cap. 1. Componentes de un Sistema Distribuido Cap. 2. Caracterizacin de los Sistemas Distribuidos Cap. 3. Tipos de Sistemas Distribuidos

Denominacin de captulos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 1: COMPONENTES DE UN SISTEMA DISTRIBUIDO

Introduccin En sta primera unidad se abordan los aspectos conceptuales necesarios para iniciar el estudio de los SD. Se presentan los componentes de un sistema distribuido, las principales caractersticas as como los tipos de sistemas distribuidos.

Leccin 1: Introduccin y Conceptos 1 Un Sistema Distribuido consiste en una coleccin de computadores autnomos enlazados por una red y equipadas con un sistema de software distribuido que luce a los usuarios como si fuera en sistema nico y centralizado.
Figura 1. Sistema Distribuido

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed. COULOURIS George, DOLLIMORE Jean y KINDBERG Tim (2001): SISTEMAS DISTRIBUIDOS Conceptos y Diseo. Pearson Addison Wesley.
1

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Este tipo de sistemas se poseen las siguientes caractersticas intrnsecas: Cada uno de los componentes trabajan en forma concurrente (interactan simultneamente). 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 estn por todas partes. Internet (considerado un gran sistema distribuido) permite que los usuarios de todo el mundo accedan a sus servicios donde quiera que estn situados. La mayora 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 pequeos sistemas distribuidos con computadores porttiles y otros dispositivos computacionales pequeos conectados a una red inalmbrica.
Figura 2. Sistema Distribuido Multimedia

Fuente: Autor

En la figura 2 se presenta un sistema distribuido multimedia tpico capaz de soportar una variedad de aplicaciones como conferencias, accesos a secuencias almacenadas de vdeo y difusin de radio y televisin digitales. En este sistema, distribuido y abierto, las aplicaciones multimedia2 pueden ser iniciadas y utilizadas sin anuncio previo. Pueden coexistir varias aplicaciones en la misma red e incluso en la misma estacin de trabajo, para lo cual se debe garantizar que todas las aplicaciones sern capaces de obtener la cantidad de recursos necesaria en los momentos requeridos, incluso cuando otras aplicaciones estn compitiendo por esos recursos.
Aplicaciones como Multimedia basada en web, telefona de red y conferencias de audio, Servicios de vdeo bajo demanda, etc.
2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 2: Objetivos de un Sistema Distribuido

La comparticin de recursos es el principal factor que motiva la construccin de sistemas distribuidos. Recursos como impresoras, archivos, pginas web o registros de bases de datos se administran mediante servidores del tipo apropiado. Por ejemplo, los servidores web administran pginas 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. Adems 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 ejecucin 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 pginas web o archivos, cuando es necesario. La capacidad del sistema para manejar recursos compartidos se puede incrementar aadiendo ms recursos (por ejemplo, computadores) a la red. La coordinacin de programas que comparten recursos y se ejecutan de forma concurrente es tambin un aspecto importante de cualquier sistema distribuido.

2. 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 (Figura 3), ya que no hay una nica nocin global del tiempo correcto. Esto es una consecuencia directa del hecho que la nica comunicacin se realiza enviando mensajes a travs de la red.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 3. Sincronizacin en Red

Fuente: Autor

3. Fallos independientes Todos los sistemas informticos pueden fallar y los diseadores 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 ejecucin. De hecho, los programas que se ejecutan en ellos pueden no ser capaces de detectar cuando la red ha fallado o est excesivamente lenta (Figura 4).
Figura 4. Fallos Independientes

Fuente: Autor

De forma similar, la cada de un servidor o la terminacin inesperada de un programa en alguna parte del sistema (crash) no se da a conocer inmediatamente a los dems componentes con los que se comunica. En un sistema distribuido

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

cada componente del sistema puede fallar independientemente, permitiendo que los dems continen su ejecucin.

Leccin 3: Comunicacin en los Sistemas Distribuidos

Por ser de gran importancia para el esquema de comunicacin entre los elementos de un sistema distribuido, se har una profundizacin en el concepto de Agente y sus diversas connotaciones.

1. Agentes3

Uno de los elementos claves para la comunicacin en un Sistema Distribuido es el Agente. La palabra Agente se refiere a todo ente que posee la habilidad, capacidad y autorizacin para actuar en nombre de otro (Figura 5). A diario, los agentes humanos asisten a las personas en tareas que requieren recursos especializados o conocimiento especfico 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. 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 fciles de especificar, pero - en algunos casos complejas de realizar. Los investigadores en el campo de los agentes computacionales han dado varias definiciones al trmino, cada uno desde su ptica particular, fundamentada bsicamente en la lnea de investigacin en la cual trabajan (Inteligencia Artificial, Ingeniera de Software, Sistemas Autnomos, Sistemas Distribuidos). A continuacin se presentan algunas definiciones: Wooldridge y Jennings4 definen agente como un programa autocontenido capaz de controlar su proceso de toma de decisiones y de actuar, basado en la percepcin de su ambiente, en persecucin de uno o varios objetivos.

TOLOSA, Gabriel Hernan (1999). Tecnologa de agentes de software, Braslia, v. 28, n. 3, p. 302-309.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 5. Agentes

Fuente: Autor

Segn Nwana5, el trmino agente se refiere a un componente de software y/o hardware que es capaz de actuar para poder ejecutar tareas en nombre de un usuario. Pattie Maes6 del laboratorio de Inteligencia Artificial del MIT (Massachusetts Institute of Technology / Instituto Tecnolgico de Massachusetts) defini a los agentes autnomos como sistemas computacionales que habitan en algn ambiente dinmico y complejo, sensando su estado y actuando autnomamente, llevando a cabo una serie de objetivos o tareas para los cuales fueron diseados. Nicholas Negroponte, director del Media Lab del MIT, hizo la observacin que el futuro de la computacin ser de delegar a y no de manipular computadores. Dentro de este marco el trmino agente se redefine para cada aplicacin que persiga dicho objetivo.

JENNINGS, N.; WOOLDRIDGE, M. Agent Technology - Foundations, Applications, and Markets. Springer-UNICOM. 1998 5 NWANA, H. Software Agents: An Overview. Knowledge Engineering Review. Cambridge University Press. v.3, p.1- 40. 1996 6 MAES, P. Modeling Adaptive Autonomous Agents. Artificial Life Journal, v.1, n. 1&2, p.135-162. MIT Press. 1994

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

2. Propiedades de los agentes Con base en todas las definiciones anteriores es posible extraer algunas caractersticas que requieren los agentes: deben ser parte de un ambiente, deben poder monitorear (sensar) su entorno y actuar sobre el, y deben responder segn los objetivos para los cuales fueron diseados. Deben entonces poseer una serie de atributos o propiedades que lo definen como agente7.

Autonoma: Capacidad de actuar sin la intervencin directa de una persona o de otro agente. Un agente debe poder controlar sus propias acciones y estado interno. Una vez que el usuario activa el agente indicando algn objetivo de alto nivel, ste acta independientemente, seleccionando estrategias y monitoreando el progreso en busca de la meta. Si falla con una estrategia, usa otra, pero sin intervencin humana o con la mnima indispensable. Habilidad Social: Un agente debe ser comunicativo. Debe tener habilidad para interactuar con otros agentes o incluso con alguna persona, para solicitar informacin o bien para exponer los resultados obtenidos de la ejecucin de las tareas planeadas. La naturaleza de la comunicacin depende del tipo de agente con quien se comunique (humanos o no), en ambos casos debe establecer un protocolo comn de intercambio de informacin entre ambas partes. Los agentes deben poseer algn tipo de interfaz para comunicarse con sus usuarios. Dicha interfaz puede establecerse simplemente mediante el envo de mensajes por correo electrnico o puede ser todo lo sofisticada que se desee (lo ideal es proveer una interfaz ms antropomrfica para los agentes). Reactividad: Se refiere al hecho de que un agente debe poder sensar el estado del ambiente dentro del cual se encuentra inmerso y -en funcin 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 electrnico est sensando 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. Orientacin por objetivos: Un agente no slo debe actuar por cambios detectados en el medioambiente, sino que debe trabajar en funcin de los objetivos para los cuales fue diseado 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
7

WOOLDRIDGE, M.; JENNINGS, N. Software Agents. IEE Review, p.17-20. 1996.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

activa un proceso que se ejecuta por determinado tiempo, algunos solicitan datos al usuario, retornan resultados y as sucesivamente. Esta es una visin pasiva de computacin, ya que la motivacin 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 mnima intervencin 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 bsqueda y recuperacin con las cuales fue construido, hasta cumplir con el objetivo. 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 algn cambio en el medio. El ciclo de vida de un agente depende de sus caractersticas, 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 trmino viajar se refiere a que en un determinado instante de tiempo el agente detiene su ejecucin, almacena su estado interno y se dirige a otro sitio dentro de una red de computadores (tanto el cdigo del agente como su estado) para luego continuar con su ejecucin en la nueva ubicacin. 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 mquina o bien ejecutarse remotamente haciendo uso del procesador y memoria del equipo destino.

3. Clasificacin 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 taxonmico que abarque todas las combinaciones de propiedades y tareas que se quieran.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Partiendo de lo anterior, se presenta la siguiente clasificacin de los agentes de acuerdo con la funcin u objetivo principal del mismo8: Agentes de interfaz Agentes colaborativos Agentes mviles Agentes de recuperacin de informacin

Agentes de interfaz Un agente de interfaz es un software cuasi-inteligente que asiste a un usuario cuando interacta con una o ms aplicaciones. La motivacin es que se les pueda delegar tareas aburridas y laboriosas. Son asistentes personales que reducen el trabajo por la sobrecarga de informacin, como por ejemplo el filtrado de los mensajes de correo electrnico o la recuperacin de archivos de Internet. Esta categora 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 hbitos de sus usuarios. Enfatizan la autonoma y el aprendizaje para llevar a cabo tareas para sus dueos y trabajan en el mismo ambiente que stos. A su vez, los agentes de interfaz pueden encontrarse subdivididos debido a diferentes tareas para las cuales son construidos. Las ms comunes son: Asistentes: Trabajan realizando tareas tpicas como el manejo de la agenda. Estos agentes ayudan al usuario a planificar las reuniones. Sus acciones incluyen negociar, aceptar o rechazar reuniones. Filtros: Su tarea principal es la de analizar informacin segn un conjunto de reglas dadas por el usuario. La aplicacin tpica es el filtrado de mensajes de correo electrnico. Guas: Asisten a los usuarios en el uso de una aplicacin. Estos agentes monitorean las acciones de los usuarios e intentan sugerir qu pasos realizar para alcanzar el objetivo. Algunos ayudan a navegar por la Web.

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
8

BERNEY, B. Software Agents A Review. Manchester Metropolitan University. 1996

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

ello es necesario contar con esquemas de comunicacin entre agentes que posibiliten la cooperacin y el intercambio de conocimiento. Adems, deben poseer un alto grado de autonoma para actuar interactuando con sus pares. La motivacin detrs de la construccin 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. Adems, estas arquitecturas posibilitan contar con mayor confiabilidad (debido a la redundancia) y mayor velocidad (debido al paralelismo) en el sistema conjunto. Las reas de aplicacin de este tipo de agentes incluyen: Resolucin de problemas demasiado grandes. Interconexin de mltiples sistemas. Manejo de informacin proveniente de fuentes distribuidas. Agentes Mviles Los agentes mviles son procesos capaces de viajar por una red de computadores, interactuando con hosts9 externos, recolectando informacin en nombre de su dueo y retornando a casa luego de completar las tareas establecidas (Figura 6). Los agentes forman un nivel de abstraccin ms para el usuario, detrs del cual se encuentran soluciones a cuestiones tcnicas en algunos casos complicadas. Una de estas cuestiones es la distribucin, es decir, como manejar recursos computacionales distribuidos. Con la idea de agentes mviles los recursos distribuidos no son completamente ocultados al usuario pero tampoco completamente expuestos10. La nocin de movilidad viene del objetivo de reducir el trfico innecesario dentro de una red, con lo que se pueden reducir los costos de comunicacin. Adems, al aportar una nueva forma de computacin 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 mviles provee una solucin. Un usuario delega la tarea de bsqueda de informacin a un agente, establece una comunicacin con la red y enva al agente a cumplir con su misin. La prxima vez que el usuario se conecte, el agente retorna con los resultados obtenidos.

Anfitrin. Mquina conectada a una red de computadores y que tiene un nombre de equipo (Hostname). Puede ser un computador, un servidor de archivos, un dispositivo de almacenamiento por red, una mquina de fax, impresora, etc. 10 WILLIAM, J. BOTS and other Internet Beasties. Sams.Net Publisihing. First Edition. 1996

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 6. Agentes Mviles

Fuente: Autor

Para soportar la movilidad, debe existir una infraestructura de transporte que mueva el cdigo del agente de una ubicacin a otra. Adems, se debe contar con un entorno de ejecucin de agentes, donde los agentes viven, compuesto por todas los computadores que los proveen. Finalmente, para construir sistemas con agentes mviles es necesario resolver algunas cuestiones fundamentales tales como: Transporte: Cmo se mueven de lugar en lugar? Ejecucin: Cmo ejecutar el agente de forma remota? Autenticacin: Cmo saber si el agente es quien dice ser y a quin representa? Privacidad: Cmo asegurar que el agente mantenga resguardado su estado interno? Seguridad: Cmo protegerlo de virus? Cmo prevenir que el agente entre en bucles infinitos o falle? Agentes de recuperacin de informacin El objetivo principal de los agentes dedicados especficamente a la recuperacin de informacin es obtener informacin por el usuario (Figura 7). La motivacin para su construccin es que con el crecimiento vertiginoso de Internet, la cantidad de informacin accesible supera la cantidad de tiempo disponible para analizarla. Un adagio popular en Internet dice: Nos estamos sumergiendo en informacin pero hambrientos de conocimiento.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Las tecnologas de la informacin han expandido los horizontes de los usuarios en cuanto a las formas de generar y acceder a la misma. Pero esta amplia variedad de informacin distribuida plantea desafos en cuanto a las formas de manejar su complejidad y heterogeneidad.

Figura 7. Agentes de Recuperacin de Informacin

Fuente: Autor

Hoy en da, la informacin se produce en mltiples contextos, se difunde por medios muy variados y se utiliza en todas partes. El rpido crecimiento de la cantidad de documentos en Internet (especialmente en la web) presenta la dificultad de poder acceder a la informacin relevante. Se produce as el fenmeno conocido como sobrecarga de informacin, entonces se trata de mejorar, pero no eliminar, el problema especfico de la sobrecarga y administracin de la informacin. Adems, existe el problema que debido al gran volumen de informacin disponible, se mezclan el ruido o desperdicio con la informacin til o necesaria, lo que determina la gran dificultad de hallar lo que realmente resulta de inters para las personas. Las soluciones actuales a este problema se basan en la construccin de motores de bsqueda, con mecanismos de indexacin de documentos, combinados con interfaces de consulta apropiadas a esta tarea, o bien, ndices manuales multinivel (o directorios), los cuales presentan clasificaciones de los documentos segn el criterio de sus autores. Ambas tcnicas poseen debilidades visibles. Los primeros, son muy propensos a recuperar demasiada cantidad de documentos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

no deseables ya que trabajan (bsicamente) mediante tcnica de bsqueda de la ocurrencia de los trminos buscados en los documentos. Por otra parte, los ndices manuales, solamente tienen parte de los posibles documentos, debido al alto costo que posee la recuperacin, manipulacin y clasificacin manual de los mismos. La motivacin es poder disear una tcnica que permita describir los cientos de millones de documentos disponibles de manera precisa, creando un ndice de alta calidad, con una forma eficaz y eficiente de acceder a ste (ya sea de manera manual o automtica). Una de las soluciones posible se basa en los agentes de recuperacin de informacin. Estos agentes pueden asistir a un usuario novato en la formulacin de consultas avanzadas, en base a sus necesidades de informacin. Adems, permiten acceder e integrar fuentes heterogneas y manejar diferentes tipos formatos de informacin. Los agentes de recuperacin de informacin poseen mtodos para permitir el rpido acceso y recuperacin de informacin relevante. Tienen la tarea de administrar, manipular y juntar informacin de fuentes distribuidas. Pueden tener mecanismos de bsqueda y navegacin flexibles y algoritmos de clasificacin poderosos. El objetivo es construir agentes capaces de armar un diario personalizado, sabiendo dnde buscar, cmo encontrar lo buscado y cmo armarlo luego. Los agentes se presentan como una herramienta muy til en la tarea de resolver el problema de la sobrecarga de informacin, debido a que stos pueden realizar sus tareas mucho ms rpido que las personas y, adems, se encuentran disponibles las veinticuatro horas.

4. Ejemplos de Agentes

Para dar claridad acerca concepto de agente software, se describen dos ejemplos de amplia utilizacin en las plataformas computacionales distribuidas:

Los agentes de biblioteca. Un interesante mbito de aplicacin de los agentes de recuperacin de informacin son las bibliotecas. Las colecciones de informacin pblica almacenadas en formato electrnico han aumentado considerablemente, por lo cual las bibliotecas deben incorporar este formato como una alternativa a las publicaciones tradicionales. Dentro de este mbito, los agentes de recuperacin de informacin pueden resultar de gran utilidad como asistentes de los

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

bibliotecarios, manejando los grandes volmenes de material electrnico almacenado. Dado un contexto de bsqueda (segn la peticin de material por parte de un usuario), el bibliotecario puede recurrir a un agente para que lo asista en las tareas de buscar, clasificar y filtrar la informacin solicitada. Con base en una solicitud, el agente puede recurrir a estrategias para seleccionar las bases de datos donde buscar y cmo categorizar los documentos encontrados. Adems, pueden colaborar con el bibliotecario en el desarrollo de las siguientes actividades: Recuperar informacin de fuentes distribuidas (Internet) Realizar consultas con distintas estrategias Generar reportes detallados y/o resumidos Mantener estadsticas de solicitudes/bsqueda/utilidad Crear perfiles de usuarios, con base en sus reas temticas o preferencias de material En los prximos aos, es impensable una biblioteca que no incorpore asistentes digitales. La diversidad de soportes, formatos, idiomas, motores de consulta, etc, estn a disposicin de los usuarios con la finalidad de brindar una mayor calidad de servicio informativo, pero l usuario debe abstraerse de cuestiones tecnolgicas que lo dispersen de sus objetivos principales. Esta ltima cuestin es la que tienden a realizar los asistentes o agentes de bibliotecas, operando como interfaces inteligentes entre el usuario y las tecnologas de informacin.

Googlebot11. Un Googlebot es un agente distribuido (robot de bsqueda) usado por Google. Colecciona documentos desde la web, para construir una base de datos para el motor de bsqueda Google. Si un webmaster12 no quiere que su pgina sea descargada por un Googlebot, el puede insertar un texto llamado robots.txt, el cual puede hacer que Googlebot (y otros robots de informacin) no investiguen esa pgina. Googlebot tiene dos versiones, deepbot y freshbot. Deepbot investiga profundamente, tratando de seguir cualquier enlace en esa pgina, adems de poner est pgina en el cach, y dejarla disponible para Google. Freshbot investiga la web buscando por contenido nuevo, visitando sitios que cambian

11 12

http://es.wikipedia.org/wiki/Google Persona responsable del matenimiento y administracin de un sitio Web.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

frecuentemente. Idealmente, el freshbot visita la pgina de un peridico todos los das, mientras que la de una revista cada semana, o cada 15 das.
Figura 8. Googlebot

Fuente: http://www.gugologia.hpg.ig.com.br/GoogleBot.gif

Googlebot descubre enlaces a otras pginas, y se dirige hacia ellos tambin, as puede abarcar toda la web fcilmente.

Leccin 4: Ventajas y desventajas de los Sistemas Distribuidos En general, los sistemas distribuidos exhiben algunas ventajas sobre los sistemas centralizados. Las principales se describen enseguida: Economa: El cociente precio/desempeo de la suma del poder de los procesadores separados contra el poder de uno solo centralizado es mejor cuando estn distribuidos. Velocidad: Relacionado con el punto anterior, la velocidad sumada es muy superior. Confiabilidad: Si una sola mquina falla, el sistema total sigue funcionando. Crecimiento: El poder total del sistema puede irse incrementando al aadir pequeos sistemas, lo cual es mucho ms difcil en un sistema centralizado y caro. Distribucin: Algunas aplicaciones requieren de por s una distribucin fsica.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Por otro lado, los sistemas distribuidos tambin exhiben algunas ventajas sobre sistemas aislados. Estas ventajas son: Compartir datos: Un sistema distribuido permite compartir datos ms fcilmente que los sistemas aislados, que tendran 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 sinergtico. Comunicaciones: La comunicacin persona a persona es factible en los sistemas distribuidos, en los sistemas aislados no. Flexibilidad: La distribucin de las cargas de trabajo es factible en el sistema distribuido, se puede incrementar el poder de cmputo.

As como los sistemas distribuidos exhiben grandes ventajas, tambin se pueden identificar algunas desventajas, algunas de ellas tan serias que han frenado la produccin comercial de sistemas operativos en la actualidad. El problema ms importante en la creacin de sistemas distribuidos es el software; los problemas de comparticin de datos y recursos son tan complejos que los mecanismos de solucin generan mucha sobrecarga al sistema hacindolo ineficiente. El revisar y validar, por ejemplo, quines tienen acceso a algunos recursos y quines no, el aplicar los mecanismos de proteccin y registro de permisos consume demasiados recursos. En general, las soluciones presentes para estos problemas estn an en sus comienzos. 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 cdigo 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 distribucin. 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"13 (deadlocks). Estos problemas de por s se presentan en los sistemas multiusuarios o multitareas, y su tratamiento en los sistemas distribuidos es an ms complejo, y por lo tanto, necesita de algoritmos ms complejos con la inherente sobrecarga esperada.
13

Una condicin de error que se produce cuando dos programas o dispositivos estn esperando por una seal del otro para poder continuar con el procesamiento.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 2: CARACTERIZACIN DE LOS SISTEMAS DISTRIBUIDOS

14

Introduccin

Al momento de implementar un sistema distribuido deben tenerse en cuenta una serie de factores que lo caracterizan, como lo son la heterogeneidad de componentes, la extensibilidad, la seguridad, el tratamiento de fallos, la escalabilidad, la concurrencia y la transparencia, entre otros. A continuacin se presenta de manera detallada que comprende cada una de estas caractersticas mencionadas.

Leccin 5: Heterogeneidad Un sistema distribuido 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) comprende los siguientes cinco (5) aspectos: Redes. Hardware de computadores. Sistemas operativos. Lenguajes de programacin. Implementaciones de diferentes desarrolladores.

La heterogeneidad (Figura 9) se aplica tambin a los tipos de datos manejados, como los enteros, los cuales pueden representarse de diferente forma en diferentes clases de hardware. Hay que tratar con estas diferencias de representacin si se van a intercambiar mensajes entre programas que se ejecutan en diferente hardware.

14

COULOURIS George, DOLLIMORE Jean y KINDBERG Tim (2001): SISTEMAS DISTRIBUIDOS Conceptos y Diseo. Pearson Addison Wesley.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 9. Heterogeneidad de Sistemas Distribuidos

Fuente: http://www.programacion.com/cursos/acscorba/i/Xbill.png

Adicional, las llamadas para intercambiar mensajes en plataformas LINUX o UNIX son diferentes de las llamadas en plataformas WINDOWS, por lo tanto hay que tener en cuenta estas diferencias si se desea que los programas escritos en diferentes lenguajes de programacin sean capaces de comunicarse entre ellos. El problema de la heterogeneidad plantea que los programas escritos por diferentes programadores no podrn comunicarse entre s a menos que utilicen estndares comunes, por ejemplo, para la comunicacin en red, la representacin de datos elementales y estructuras de datos en mensajes. Para que esto ocurra es necesario concertar y adoptar estndares como por ejemplo los protocolos de Internet (TCP/IP)15.

Heterogeneidad y cdigo mvil El trmino cdigo mvil se emplea para referirse al cdigo que puede ser enviado desde un computador a otro y ejecutarse en ste ltimo (Figura 10), por eso los applets16 de Java17 son un ejemplo de ello. Dado que el conjunto de
TCP/IP son las abreviaturas de los protocolos ms utilizados en Internet. El protocolo de control de transmisin (TCP) y el protocolo de Internet (IP). 16 Componente de software que corre en el contexto de otro programa, por ejemplo un navegador web. El applet debe correr en un contenedor, que es proporcionado por un programa anfitrin, mediante un plugin, o
15

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

instrucciones de un computador depende del hardware, el cdigo de nivel de mquina adecuado para ejecutarse en un tipo de computador no es adecuado para ejecutarse en otro tipo. Por ejemplo, los usuarios de PCs envan a veces archivos ejecutables agregados a los correos electrnicos 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.
Figura 10. Heterogeneidad y Cdigo Mvil

Fuente: http://www.code-magazine.com/ArticleImage.aspx

La aproximacin de mquina virtual provee un modo de crear cdigo ejecutable sobre cualquier hardware: el compilador de un lenguaje concreto genera cdigo para una mquina virtual en lugar de cdigo apropiado para un hardware particular, por ejemplo el compilador Java produce cdigo para la mquina virtual Java, la cual slo necesita ser implementada una vez para cada tipo de mquina con el fin de poder lanzar programas Java. Sin embargo, la solucin Java no se puede aplicar de modo general a otros lenguajes.
en aplicaciones como telfonos celulares que soportan el modelo de programacin por applets. A diferencia de un programa, un applet no puede correr de manera independiente, ofrece informacin grfica y a veces interactua con el usuario, tpicamente carece de sesin y tiene privilegios de seguridad restringidos. Un applet normalmente lleva a cabo una funcin muy especfica que carece de uso independiente. Un applet es un cdigo Java que carece de un mtodo main, por eso se utiliza principalmente para el trabajo de pginas web, ya que es un pequeo programa que es utilizado en una pgina HTML y representado por una pequea pantalla grfica dentro de sta. 17 Lenguaje de programacin orientado a objetos desarrollado por James Gosling y sus compaeros de Sun Microsystems al inicio de la dcada de 1990. A diferencia de los lenguajes de programacin convencionales, que generalmente estn diseados para ser compilados a cdigo nativo, Java es compilado en un bytecode que es ejecutado (usando normalmente un compilador JIT), por una mquina virtual Java. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos mucho ms simple y elimina herramientas de bajo nivel como punteros.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 6: Extensibilidad La extensibilidad de un sistema de computacin es la caracterstica que determina si el sistema puede ser extendido y reimplementado en diversos aspectos (Figura 11). 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. Para hablar de extensibilidad es importante que la documentacin de las interfaces software clave de los componentes de un sistema est disponible para los desarrolladores de software. Es decir, que las interfaces clave estn publicadas. Este procedimiento es similar a una estandarizacin de las interfaces, aunque a menudo va mas all de los procedimientos oficiales de estandarizacin, que por lo dems suelen ser lentos y complicados. El desafo para los diseadores es hacer frente a la complejidad de los sistemas distribuidos que constan de muchos componentes diseados por personas diferentes.
Figura 11. Extensibilidad en un Sistema Distribuido

Fuente: Autor

Los diseadores de los protocolos de Internet presentaron una serie de documentos denominados Solicitudes de Comentarios (RFC / Request For Comments), cada una de los cuales se conoce por un nmero. Las

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

especificaciones de los protocolos de Internet fueron publicadas en esta serie a principios de los aos ochenta, seguido por especificaciones de aplicaciones que corrieran sobre ellos, tales como transferencia de archivos, correo electrnico y TELNET a mediados de los aos ochenta. Esta prctica contina y forma la base de la documentacin tcnica sobre Internet, que incluye discusiones as como especificaciones de protocolos18. As, la publicacin de los protocolos originales de comunicacin de Internet ha posibilitado que se construyera una enorme variedad de sistemas y aplicaciones sobre Internet. Los documentos RFC no son el nico modo de publicacin. Por ejemplo, la documentacin del Sistema Operativo Distribuido CORBA19 est publicada a travs de una serie de documentos tcnicos, incluyendo una especificacin completa de las interfaces de sus servicios a travs del Grupo de Administracin Abierto (OMG / Open Management Group)20.

Estndares abiertos La extensibilidad de un sistema distribuido se destaca por el hecho de ser un Sistema Abierto o de utilizar estndares abiertos. Gracias a esto, los sistemas pueden ser extendidos en el nivel hardware mediante la inclusin de computadores a la red y en el nivel software por la introduccin de nuevos servicios y la reimplementacin de los antiguos, posibilitando a los programas de aplicacin la comparticin de recursos. Otro beneficio ms, citado a menudo, de los sistemas abiertos es su independencia de proveedores concretos. Los Estndares abiertos son especificaciones disponibles pblicamente para lograr una tarea especfica. Al permitir a todos el obtener e implementar el estndar, pueden incrementar compatibilidad entre varios componentes de hardware y software, ya que cualquiera con el conocimiento tcnico necesario y recursos puede construir productos que trabajen con productos de otros vendedores, los cuales compartan en su diseo base el estndar (aunque los poseedores de las patentes pueden imponer cargos o otros trminos de licencia en las implementaciones del estndar). Ejemplos de estndares abiertos son: GSM Sistema Global para Comunicaciones Mviles especificado por 3GPP21 HTML/XHTML22 Especificacin de W3C23 para formato de documentos estructurados

18 19

Se pueden obtener copias de estos documentos en http://www.ietf.org Estndar que facilita las comunicaciones entre aplicaciones distribuidas orientadas a objetos sin considerar el lenguaje de programacin en que ellas fueron escritas y la plataforma hardware en la cual se ejecutan. 20 http://www.omg.org 21 http://www.3gpp.org 22 Lenguaje de marcacin de Hipertexto (Hiper-Text Markup Language)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

IP24 Especificacin de la IETF25 para transmitir paquetes de datos en una red)

Con base en lo anterior se puede concluir lo siguiente: 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.

Leccin 7: Seguridad Entre los recursos de informacin que se ofrecen y se mantienen en los sistemas distribuidos, muchos tienen un alto valor intrnseco para sus usuarios. Por esto su seguridad es de considerable importancia (Figura 12). 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); y disponibilidad (proteccin 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. Aunque se pueda emplear un cortafuegos (firewall)26 para disponer una barrera alrededor de una intranet, restringiendo el trfico que pudiera entrar y salir, es muy difcil asegurar el uso apropiado de los recursos por usuarios del interior de la intranet. En un sistema distribuido, los clientes envan peticiones de acceso a datos administrados por servidores, lo que trae consigo enviar informacin en los mensajes por la red. Por ejemplo: Un mdico puede solicitar acceso a los datos hospitalarios de un paciente o enviar modificaciones sobre ellos.

http://w3.org Ver glosario 25 http://www.ietf.org/) 26 En todo el mdulo se utilizar la palabra cortafuegos (ver glosario) a cambio del trmino Firewall. Un cortafuegos es un elemento de hardware o software utilizado en una red de computadores para prevenir algunos tipos de comunicaciones prohibidos segn las polticas de red que se hayan definido en funcin de las necesidades de la organizacin responsable de la red.
24

23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

En comercio electrnico y banca, los usuarios envan su nmero de tarjeta de crdito a travs de Internet.
Figura 12. Seguridad

Fuente: KUROSE James, REDES DE COMPUTADORES, Addison Wesley, Madrid, 2004, 2 Ed.

En ambos casos, el reto se encuentra en 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 u otro agente en nombre del cual se enva el mensaje. En el primer ejemplo, el servidor necesita conocer que el usuario es realmente un mdico y en el segundo, el usuario necesita estar seguro de la identidad de la tienda o del banco con el que est tratando. El segundo reto consiste en 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 atendidos a cabalidad: los ataques de denegacin del servicio (DoS / Denial of Service)27 y el cdigo mvil. Ataques de denegacin de servicio: Este 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. 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
Tipo de ataque hecho por un usuario a un sistema de computacin para saturarlo con consultas y evitar que ofrezca uno o varios servicios.
27

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

cuando en realidad estn interesados en el acceso a los recursos locales, o quizs pueda ser parte de un ataque de denegacin de servicio.

Leccin 8: 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 su capacidad de procesamiento puede crecer aadiendo nodos adicionales: Aumenta el rendimiento con un nmero creciente de nodos (idealmente de forma lineal). El tiempo de respuesta decrece (o se mantiene constante o crece lentamente) con un nmero creciente de nodos. La fiabilidad el sistema aumenta con nmero creciente de nodos (idealmente de forma logartmica).

Internet proporciona un ejemplo de un sistema distribuido en el que el nmero de computadores y servicios experimenta un dramtico incremento. La figura 13 muestra las estadsticas de crecimiento de Internet, por reas geogrficas, con respecto al crecimiento de la poblacin mundial durante los ltimos aos28.
Figura 13. Crecimiento de Internet en los ltimos aos

Fuente: http://www.isoc.org
28

http://info.isoc.org

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El diseo de los sistemas distribuidos escalables presenta los siguientes retos:

1. Control del coste de los recursos fsicos Segn crece la demanda de un recurso, debiera ser posible extender el sistema, a un coste razonable, para satisfacerla. Por ejemplo, la frecuencia con la que se accede a los archivos de una intranet suele crecer con el incremento del nmero de usuarios y computadores. Debe ser posible aadir servidores para evitar el embotellamiento que aparece cuando un solo servidor de archivos ha de manejar todas las peticiones de acceso a stos. En general, para que un sistema con (n) usuarios fuera escalable, la cantidad de recursos fsicos necesarios para soportarlo debiera ser como mximo O(n), es decir proporcional a (n). Por ejemplo, si un solo servidor de archivos pudiera soportar 20 usuarios, entonces 2 servidores del mismo tipo tendrn capacidad para 40 usuarios. Aunque parezca una meta obvia, no es tan fcil lograrlo en la prctica.

2. Control de las prdidas de prestaciones Considere la administracin de un conjunto de datos cuyo tamao es proporcional al nmero de usuarios o recursos del sistema, sea por ejemplo la tabla con la relacin de nombres de dominio de computadores y sus direcciones Internet sustentado por el Sistema de Nombres de Dominio (DNS / Domain Name System)29, que se emplea principalmente para averiguar nombres DNS tales como www.unad.edu.co. Los algoritmos que emplean estructuras jerrquicas se comportan mejor frente al crecimiento de la escala que los algoritmos que emplean estructuras lineales. Pero incluso con estructuras jerrquicas un incremento en tamao trae consigo prdidas en prestaciones: el tiempo que lleva acceder a datos estructurados jerrquicamente es O(log n), donde (n) es el tamao del conjunto de datos. Para que un sistema sea escalable, la mxima prdida de prestaciones no debiera ser peor que esta medida.

3. Prevencin de desbordamiento de recursos software Un ejemplo de prdida de escalabilidad se muestra en el tipo de nmero usado para las direcciones Internet (direcciones de computadores en Internet). A finales
Sistema de direccionamiento distribuido que traduce el nombre de un servidor web en una direccin IP. Facilita el uso de Internet ya que no hay necesidad de aprender o recordar las direcciones IP (Ej: 172.18.4.5)
29

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

de los aos setenta, se decidi emplear para esto 32 bits (formato de direccionamiento IPv430), pero este tipo de direccionamiento para Internet se desbordar probablemente al comienzo de la dcada del ao 2010. Por esta razn, la nueva versin del protocolo emplea direcciones Internet de 128 bits (formato de direccionamiento IPv631). A pesar de ello, para ser justos con los primeros diseadores de Internet, no hay una solucin idnea para este problema. Es difcil predecir la demanda que tendr que soportar un sistema con aos de anticipacin. Adems, sobredimensionar para prever el crecimiento futuro pudiera ser peor que la adaptacin a un cambio cuando se hace necesario; las direcciones Internet grandes ocupan espacio extra en los mensajes, y en la memoria de los computadores.

4. Evitar cuellos de botella de prestaciones En general, para evitar cuellos de botella de prestaciones, los algoritmos deberan ser descentralizados. Ilustramos este punto aludiendo al predecesor del Sistema de Nombres de Dominio en el cual la tabla de nombres se alojaba en un solo archivo maestro que poda descargarse a cualquier computador que lo necesitara. Esto funcionaba bien cuando slo haba unos cientos de computadores en Internet, pero pronto se convirti en un serio cuello de botella de prestaciones y de administracin. El Sistema de Nombres de Dominio elimin este cuello de botella particionando la tabla de nombres entre servidores situados por todo Internet y siendo administrados localmente. Algunos recursos compartidos son accedidos con mucha frecuencia; por ejemplo, puede que muchos usuarios accedan a la misma pgina web, causando un declive de las prestaciones. Una forma de optimizar lo anterior es mediante el empleo de cach y replicacin puede mejorar las prestaciones de los recursos que estn siendo muy fuertemente utilizadas. Idealmente, el software de sistema y aplicacin no tiene por qu cambiar cuando la escala del sistema se incremente, pero esto es difcil de conseguir. La cuestin del escalado de un sistema es un tema dominante en el desarrollo de sistemas distribuidos.

Versin 4 del Protocolo IP. Esta fue la primera versin del protocolo que se implement extensamente, y forma la base de Internet. IPv4 usa direcciones de 32 bits, limitndola a 232 = 4.294.967.296 direcciones nicas, muchas de las cuales estn dedicadas a redes locales (LANs). 31 Para una ampliacin de IPv6 vea captulo 4 de la unidad 3 del presente mdulo

30

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 9: 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 clculo 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 difcil. Entre las principales tcnicas para tratar fallos se encuentran las siguientes:

1. Deteccin de fallos Algunos fallos son detectables. Por ejemplo, se pueden utilizar sumas de comprobacin (checksums) 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.

2. Enmascaramiento de fallos Algunos fallos que han sido detectados pueden ocultarse o atenuarse. Dos ejemplos de ocultacin de fallos son: 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. Simplemente eliminar un mensaje corrupto es un ejemplo de atenuar un fallo (pudiera retransmitirse de nuevo).

3. Tolerancia de fallos La mayora de los servicios en 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. 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, dndole la libertad de intentarlo ms tarde.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

4. Recuperacin frente a fallos La recuperacin implica el diseo de software en el que, tras una cada del servidor, el estado de los datos pueda reponerse o reversarse (roll back) a una situacin anterior. En general, cuando aparecen fallos los clculos realizados por algunos programas se encontrarn incompletos y al actualizar datos permanentes (archivos e informacin ubicada en almacenamiento persistente) pudiera encontrarse en un estado inconsistente.

5. Redundancia Puede lograrse que los servicios toleren fallos mediante el empleo redundante (duplicidad) de componentes. Considere los siguientes ejemplos: Siempre debe haber al menos dos rutas diferentes entre cualesquiera dos encaminadotes (routers)32 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 disearse para detectar fallos entre sus iguales; cuando se detecta algn 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 proporcin de tiempo en que est utilizable. Cuando falla algn componente del sistema distribuido slo 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.

Del ingls Router. Dispositivo hardware o software de interconexin de redes de computadores que opera en la capa tres (nivel de red) del modelo OSI. Este dispositivo interconecta segmentos de red o redes enteras. Hace pasar paquetes de datos entre redes tomando como base la informacin de la capa de red. El router toma decisiones lgicas con respecto a la mejor ruta para el envo de datos a travs de una red interconectada y luego dirige los paquetes hacia el segmento y el puerto de salida adecuados.

32

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 10: 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 artculos 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 aproximacin limita el ritmo de produccin del sistema Por esto los servicios y aplicaciones permiten, usualmente, procesar concurrentemente mltiples peticiones de los clientes. Ms concretamente, suponga que cada recurso se encapsula en un objeto y que las invocaciones se ejecutan en hilos de ejecucin concurrentes (threads)33. En este caso es posible que varios threads estuvieran ejecutando concurrentemente el contenido de un objeto, en cuyo caso las operaciones en el objeto pueden entrar en conflicto entre s y producir resultados inconsistentes. Por ejemplo, sean dos ofertas que concurren a una subasta como Prez: 122$ y Rodrguez: 111$ y las operaciones correspondientes se entrelazan sin control alguno, estas ofertas se pueden almacenar como Prez: 111$ y Rodrguez: 122$. La moraleja de esta historia es que 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, debe realizar las modificaciones necesarias para que su uso sea seguro 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. Esto puede lograrse mediante el empleo de tcnicas conocidas como los semforos, que se usan en la mayora de los sistemas operativos.

Leccin 11: 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
33

Ver Glosario.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

componentes independientes. Las implicaciones de la transparencia son de gran calado en el diseo del software del sistema. El Modelo de Referencia para el Procesamiento Distribuido Abierto (RM-ODP: Reference Model for Open Distributed Processing) de la Organizacin Internacional de Estndares (ISO 1992) identifican ocho formas de transparencia. Transparencia de acceso que permite acceder a los recursos locales y remotos empleando operaciones idnticas. Transparencia de ubicacin que permite acceder a los recursos sin conocer su localizacin. Transparencia de concurrencia que permite que varios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua. Transparencia de replicacin que permite utilizar mltiples ejemplares de cada recurso para aumentar la fiabilidad y las prestaciones sin que los usuarios y los programadores de aplicaciones necesiten su conocimiento. Transparencia frente a fallos que permite ocultar los fallos, dejando que los usuarios y programas de aplicacin completen sus tareas a pesar de fallos del hardware o de los componentes software. Transparencia de movilidad que permite la reubicacin de recursos y clientes en un sistema sin afectar la operacin de los usuarios y los programas. Transparencia de prestaciones que permite reconfigurar el sistema para mejorar las prestaciones segn vara su carga. Transparencia al escalado que permite al sistema y a las aplicaciones expandirse en tamao sin cambiar la estructura del sistema o los algoritmos de aplicacin.

Las dos ms importantes son la transparencia de acceso y la transparencia de ubicacin; su presencia o ausencia afecta principalmente a la utilizacin de recursos distribuidos. A veces se les da el nombre conjunto de transparencia de red. Como aclaracin de la transparencia de acceso, considere una interfaz grfica de usuario basada en carpetas, donde los contenidos de las carpetas se observan igual ya sean stas locales o remotas. Otro ejemplo pudiera ser el de una interfaz de programacin de aplicaciones (API)34 para archivos que emplea las mismas
Del ingls Application Programming Interface (Interfaz de Programacin de Aplicaciones). Conjunto de especificaciones de comunicacin entre componentes software. Representa un mtodo para conseguir abstraccin en la programacin, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de los principales propsitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta
34

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

operaciones para acceder a stos ya sean locales o remotos. Como ejemplo de carencia de transparencia de acceso, considere un sistema distribuido que no permite acceder a los archivos de un computador remoto a menos que se emplee el programa FTP (File Transfer Protocol / Protocolo de Transferencia de Archivos). Los nombres de recursos web o URLs35 son transparentes a la ubicacin dado que la parte del URL que identifica el nombre del dominio del servidor web se refiere a un nombre de computador en un dominio, ms que a una direccin en Internet. Sin embargo, un URL no es transparente a la movilidad, porque una pgina web dada no puede moverse a un nuevo lugar en un dominio diferente sin que todos los enlaces anteriores a esta pgina sigan apuntando a la pgina original. En general, los identificadores como los URLs que incluyen los nombres de dominio en los computadores contravienen la transparencia de replicacin. Aunque el DNS permite que un nombre de dominio se refiera a varios computadores, slo se escoge uno de ellos cuando se utiliza un nombre. Ya que un esquema de replicacin generalmente necesita ser capaz de acceder a todos los computadores del grupo, sera necesario acceder a cada entrada del DNS por nombre. Como ilustracin de la presencia de transparencia de red, considere el uso de una direccin de correo electrnico como Jaimito.Elcartero@Lavecindad.com. La direccin consta de un nombre de usuario y un nombre de dominio. Observe que a pesar de que los programas de correo aceptan nombres de usuario para usuarios locales, aaden el nombre del dominio. El envo de correo a un usuario no implica el conocimiento de su ubicacin fsica en la red. Tampoco el procedimiento de envo de un mensaje de correo depende de la ubicacin del receptor. En resumen, el correo electrnico en Internet proporciona ambas cosas: transparencia de ubicacin y transparencia de acceso (en definitiva, transparencia de red). La transparencia frente a fallos puede ilustrarse tambin en el contexto del correo electrnico, el cual eventualmente se enva, incluso aunque los servidores o los enlaces de comunicaciones fallen. Los fallos se enmascaran intentando retransmitir los mensajes hasta que se envan satisfactoriamente, incluso si lleva varios das. Para ilustrar la transparencia a la movilidad, considere el caso de los
forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitndose el trabajo de programar todo desde el principio. 35 Del ingls Uniform Resource Locator (localizador uniforme de recurso). Es una secuencia de caracteres, de acuerdo a un formato estndar, que se usa para nombrar recursos, como documentos e imgenes en Internet, por su localizacin. El URL es la cadena de caracteres con la cual se asigna una direccin nica a cada uno de los recursos de informacin disponibles en la Internet. Existe un URL nico para cada pgina de cada uno de los documentos de la World Wide Web. Ejemplo: http://es.wikipedia.org:80/wiki/data

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

telfonos mviles. Supongamos que ambos, el emisor y el receptor, viajan en tren por diferentes partes del pas, movindose de un entorno (clula) a otro. Veamos al terminal del emisor como un cliente y al terminal del receptor como un recurso. Los dos usuarios telefnicos no perciben el desplazamiento de sus terminales (el cliente y el recurso) entre dos clulas. La transparencia oculta y difumina annimamente los recursos que no son relevantes directamente para la tarea entre manos de los usuarios y programadores de aplicaciones. Por ejemplo, en general es deseable que el uso de ciertos dispositivos fsicos sea intercambiable. Por ejemplo, en un sistema multiprocesador, la identificacin del procesador en que se ejecuta cada proceso es irrelevante. An puede que la situacin sea otra: por ejemplo, un viajero que conecta un computador porttil a una red local, en cada oficina que visita hace uso de servicios locales como el correo, utilizando diferentes servidores en cada ubicacin. Incluso dentro de un edificio, es normal preparar las cosas para imprimir cada documento en una impresora concreta: generalmente la ms prxima. Tambin para un programador que desarrolla programas paralelos, no todos los procesadores son annimos. l o ella pudiera estar interesado en qu procesadores utilizar para la tarea, o al menos cuntos y su topologa de interconexin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 3: TIPOS DE SISTEMAS DISTRIBUIDOS

36

Introduccin

La motivacin para construir y utilizar sistemas distribuidos tiene su origen en un deseo de compartir recursos. El trmino recurso es un poco abstracto, pero caracteriza bien el rango de cosas que pueden ser compartidas de forma til en un sistema de computadores conectados en red. ste se extiende desde los componentes hardware como los discos y las impresoras hasta las entidades de software definidas como archivos, bases de datos y objetos de datos de todos los tipos. Incluye la secuencia de imgenes que sale de una cmara de vdeo digital y la conexin de audio que representa una llamada de telfono mvil. Dependiendo del acceso, la configuracin y el tipo de informacin que se transmite se pueden tener muchos tipos de sistemas distribuidos. Para reforzar los conceptos vistos hasta aqu se presentan, de manera detallada, cuatro tipos de sistemas distribuidos de gran uso actualmente. Ellos son Internet, Intranet, Computacin mvil y Computacin Distribuida.

Leccin 12: Internet

Internet es una vasta coleccin de redes de computadores de diferentes tipos, las cuales se encuentran interconectadas. La figura 14 muestra una porcin tpica de Internet. Programas ejecutndose en los computadores conectados a ella interactan mediante paso de mensajes, empleando un medio comn de comunicacin. 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.

36

COULOURIS George, DOLLIMORE Jean y KINDBERG Tim (2001): SISTEMAS DISTRIBUIDOS Conceptos y Diseo. Pearson Addison Wesley.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 14. Red Internet

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Internet es tambin un sistema distribuido muy grande. Permite a los usuarios, donde quiera que estn, hacer uso de servicios como el World Wide Web37,38. El conjunto de servicios es abierto, puede ser extendido por la adicin de servidores y nuevos tipos de servicios. La figura 14 nos muestra una coleccin de intranets, subredes gestionadas por compaas y otras organizaciones. Los proveedores de servicios de Internet (ISP / Internet Service Providers) son empresas que proporcionan enlaces de mdem y otros tipos de conexin a usuarios individuales y pequeas organizaciones, permitindoles el acceso a servicios desde cualquier parte de Internet, as como proporcionando servicios como correo electrnico y pginas web. Las intranets estn enlazadas conjuntamente por conexiones troncales (backbones)39. 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 permiten a los usuarios el acceso a datos de audio y vdeo, incluyendo msica, radio y canales de televisin, as como mantener videoconferencias. La capacidad de Internet para manejar los requisitos especiales de comunicacin de los datos multimedia es actualmente

La World Wide Web, comnmente llamada Web o WWW, nace a principios de los aos 90, aunque sus orgenes se remontan a mucho tiempo antes, ya que es fruto de la confluencia de la teora hipertextual y de las redes de computadores. Fue creada por Tim Berners-Lee del Centro Europeo de Fsica Nuclear (CERN) con el objetivo de servir como herramienta para la bsqueda y transmisin de informacin entre los cientficos del mundo. 38 Berners-Lee, T., Caillaiau, R., Luotonen, A., Nielse, H., Secret, A. (1994): "The World Wide Web". Communications of the ACM, Vol. 37, N 8. Agosto 1994. pp 76-82). 39 Porcin de la red que administra el trfico de alto volumen. El backbone puede conectar varias sedes o edificios de una organizacin, as como las pequeas redes LAN que posea.

37

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

bastante limitada porque no proporciona la infraestructura necesaria para reservar capacidad de la red para flujos individuales de datos.

Leccin 13: Intranet

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. La figura 15 muestra una intranet tpica. Est compuesta de varias redes de rea local (LANs / Local Area Networks)40 enlazadas por conexiones backbone. La configuracin de red de una intranet particular es responsabilidad de la organizacin 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 organizacin en diferentes pases.

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 electrnico. Permite tambin 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 por parte de usuarios maliciosos de cualquier lugar. Por ejemplo, una empresa no desea que la informacin segura est accesible para los usuarios de organizaciones competidoras, y un hospital no desea que los datos sensibles de los pacientes sean revelados. Las empresas tambin quieren protegerse a s mismas de que programas nocivos, como los virus, entren y ataquen los computadores de la intranet y posiblemente destruyan datos valiosos.

El papel del cortafuegos es proteger una intranet impidiendo que entren o salgan mensajes no autorizados. Un cortafuegos se implementa filtrando los mensajes que entran o salen, por ejemplo de acuerdo con su origen o destino. Un cortafuegos podra permitir, por ejemplo, slo aquellos mensajes relacionados con el correo electrnico o el acceso web para entrar o salir de la intranet que protege.

40 Del ingls Local Area Network, Red de rea Local. Una red local es la interconexin de varios computadores y perifricos. Su extensin esta limitada fsicamente a un edificio o a un entorno de unos pocos kilmetros.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 15. Red Intranet

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Algunas organizaciones no desean conectar sus redes internas a Internet. Por ejemplo, la polica y otras agencias para la seguridad y la vigilancia de la ley prefieren disponer de algunas redes internas que estn aisladas del mundo exterior, y el Servicio Nacional de Salud ha tomado la opcin de que los datos mdicos sensibles relacionados con los pacientes slo pueden ser protegidos adecuadamente mantenindolos en una red interna separada fsicamente. Algunas organizaciones militares desconectan sus redes internas de Internet en tiempos de guerra. Pero incluso dichas organizaciones desean beneficiarse del amplio rango de aplicaciones y software de sistemas que emplean los protocolos de Internet. La solucin que se adopta en tales organizaciones es realizar una intranet como se ha indicado, pero sin conexiones a Internet. Tal intranet puede prescindir de cortafuegos, o, dicho de otro modo, disponer del cortafuegos ms efectivo posible, la ausencia de cualquier conexin fsica a Internet. Los principales temas relacionados con el diseo de componentes para su uso en intranets son: Los servicios de archivos son necesarios para permitir a los usuarios compartir datos. Los cortafuegos tienden a impedir el acceso legtimo a servicios, cuando se precisa compartir recursos entre usuarios externos e internos, los cortafuegos deben ser complementados con el uso de mecanismos de seguridad ms refinados.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El coste de instalacin y mantenimiento del software es una cuestin importante. Estos costes pueden ser reducidos utilizando arquitecturas de sistema como redes de computadores y clientes ligeros.

Leccin 14: Computacin mvil y ubicua Si hay un hecho relevante y caracterstico de nuestra sociedad actual es la aparicin y rpida difusin de dispositivos mviles (telfonos mviles, PDAs41, porttiles, etc) los cuales nos acompaan en todo momento debido a su reducido tamao (Figura 16). Estos dispositivos tienen capacidad de cmputo y adems pueden comunicarse con otros elementos sin necesidad de conexiones fsicas, gracias a protocolos inalmbricos como GPRS42, UMTS43, WLAN44 y Bluetooth45.
Figura 16. Dispositivos mviles en un Sistema Distribuido

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Las aplicaciones software de estos pequeos dispositivos deben de adaptarse a las restricciones de memoria, procesamiento y de comunicacin intermitente y de calidad cambiante que les caracteriza. El paradigma de computacin distribuida que mejor se adapta a todas estas caractersticas es lo que se denomina Agente y de esta manera es que se desarrollan ampliamente los sistemas de computacin mvil y ubicua. De acuerdo con lo anterior es que han evolucionado las plataformas de agentes mviles en dispositivos limitados, y de la mano una serie
Asistente Personal Digital (Personal Digital Assistant) Paquete General de Servicios Radiales (General Packet Radio Service) 43 Sistema de Telecomunicaciones Mviles Universal (Universal Mobile Telecommunications System) 44 Red de rea Local Inalmbrica (Wireless Local Area Network) 45 Bluetooth es la norma que define un estndar global de comunicacin inalmbrica de corto alcance que posibilita la transmisin de voz y datos entre diferentes equipos mediante un enlace por radiofrecuencia.
42 41

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

de servicios bsicos que deben ser proporcionados para los entornos mviles. Por lo general la mayora de aplicaciones distribuidas para plataformas mviles se estn desarrollando en lenguaje Java el cual se caracteriza por su alta portabilidad. Entre los servicios bsicos que debe proporcionar una plataforma de agentes distribuidos para computacin mvil, se encuentran los siguientes: Servicios de comunicacin: La mayora de plataformas de agentes que se han desarrollado emplean mecanismos de computacin distribuida complejos como RMI46, CORBA, etc. Debido a las limitaciones de los dispositivos mviles (capacidad de procesamiento, memoria), estas soluciones son inviables. Por lo tanto se deben emplear otros mtodos de comunicacin que sean ms ligeros, aunque no proporcionen tantas facilidades. Servicios de descubrimiento y anuncio: Las plataformas deben de conocerse unas a otras, y adems deben de saber qu tipo de servicios complementarios ofrecen para poder beneficiarse de ellos. Existen varios protocolos de descubrimiento, como SLP47, Jini48, SSDP49 de UPnP50 y SDP51 de Bluetooth, la mayora de ellos centralizan en un nico elemento la informacin de estos servicios. Servicios de seguridad: Uno de los principales frenos a la utilizacin de agentes mviles en aplicaciones comerciales es la seguridad, por lo tanto es uno de los temas que es necesario analizar en mayor profundidad. Las principales propuestas se centran en que el servicio de seguridad se proporcione a travs de tarjetas inteligentes, algo bastante habitual en este tipo de dispositivos, como en el caso de los telfonos mviles.

La utilizacin de la tecnologa de agentes distribuidos en sistemas de computacin mvil permite adaptarse a estas limitaciones de los equipos para proporcionar mejores servicios a los usuarios finales y mejorar las prestaciones de la red, debido a que:

46 47

Invocacin de Mtodo Remoto (Remote Method Invocation) Protocolo de Localizacin de Servicios (Service Location Protocol) 48 Mecanismo para conectar servicios distribuidos dentro de una red Java 49 Protocolo Simple de Descubrimiento de Servicio (Simple Service Discovery Protocol) 50 Enchufe y Ejecute Universal (Universal Plug and Play) 51 Protocolo de Descripcin de Sesin (Session Description Protocol)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Los agentes que proporcionan un servicio pueden enviarse dinmicamente y bajo demanda a los propios usuarios. Los agentes permiten realizar distribuciones de tareas para realizar actividades de gestin, siendo los propios agentes quienes recopilen los datos y los procesen localmente en la parte del dispositivo mvil. La autonoma de los agentes permite que se realicen tareas de forma asncrona. Los agentes pueden realizar gran parte del procesamiento de forma local, por lo que se conseguira una reduccin importante del trfico en la red. Los agentes permiten una mayor independencia de la disponibilidad de la red, ya que su capacidad de movilidad les permite migrar a otros nodos de la red.

Algunas de las aplicaciones de la tecnologa de sistemas distribuidos en sistemas de telefona mvil de tercera generacin son: Tareas de gestin de red, siguiendo una tendencia ya explorada en redes fijas, pero que tiene mayor inters en redes mviles debido a que las propias caractersticas de los agentes mviles se adaptan a las limitaciones de los sistemas inalmbricos. Desarrollo del VHE (Virtual Home Environment / Entorno de Hogar Virtual), que permitir la personalizacin y portabilidad de los servicios de los usuarios independientemente de la red que le d servicio y del dispositivo que empleen en el acceso. Asociamos la implementacin del VHE con un agente mvil, que permitir configurar el servicio para adaptarse a las preferencias del usuario y a las caractersticas del dispositivo, y adems ser el encargado de crear el propio perfil de usuario analizando su comportamiento y su posicin. Adems de los beneficios indicados como parte de un sistema de telefona mvil, un dispositivo con una plataforma de agentes puede proporcionar al usuario mayores servicios de valor aadido si se integra como parte de entornos de computacin ubicua. El usuario desde su dispositivo mvil puede controlar su entorno: La intensidad de las luces, el aire acondicionado, etc. como si fuera un mando a distancia universal que se autoconfigura segn el ambiente en el que se encuentre. Tambin es posible beneficiarse de otros servicios que ofrezcan los dispositivos que estn en su entorno mas prximo, como por ejemplo: mandar documentos a la impresora, enviar sus transparencias al porttil que tiene conectado el VideoBeam, etc. Todo esto de una manera casi mgica e invisible al usuario, porque son los agentes que se ejecutan sobre los dispositivos mviles los que sabrn que tareas hay que realizar para alcanzar el objetivo final.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 15: Computacin Distribuida52 La computacin distribuida, computacin en grilla o informtica en rejilla, es un nuevo modelo para resolver problemas de computacin masiva utilizando un gran nmero de computadores organizados en racimos incrustados en una infraestructura de telecomunicaciones distribuida.
Figura 17. Velocidad de los Procesadores

Fuente: http://rd13doc.cern.ch/Notes/003/t1.2.pdf

La informtica en grilla (grid computing) consiste en compartir recursos heterogneos (basadas en distintas plataformas, arquitecturas de equipos y programas, lenguajes de programacin), situados en distintos lugares y pertenecientes a diferentes dominios de administracin sobre una red que utiliza estndares abiertos. Dicho brevemente, consiste en virtualizar los recursos informticos. Para ello se aprovecha la gran capacidad que estn teniendo los procesadores y en especial los utilizados en equipos personales (Figura 17). La computacin en grilla ha sido diseada para resolver problemas demasiado grandes para cualquier simple supercomputadora, mientras se mantiene la flexibilidad de trabajar en mltiples problemas ms pequeos. Por lo tanto, la computacin distribuida es naturalmente un entorno multiusuario; por ello, las

52

http://www.grid.org

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

tcnicas de autorizacin segura son esenciales antes de permitir que los recursos informticos sean controlados por usuarios remotos. 1. Caractersticas de la Computacin Distribuida En entorno de computacin distribuida en grilla se caracteriza principalmente por contar con los siguientes elementos: Servidores y clientes con conexin a una red (Internet). Conexin altamente confiable 7/24 (7 das a la semana, 24 horas al da) Comparticin de recursos (hardware, software, datos, dispositivos de almacenamiento, etc.) Desarrollo de procesos de manera transparente a los usuarios. Alta capacidad de clculo global. 2. Aplicaciones de la Computacin Distribuida Actualmente la computacin en grilla se esta utilizando en macroproyectos relacionados con: servicios financieros, bioinformtica, sismologa y geofsica, astronoma y astrofsica, diseo mecnico, simulacin de procesos, anlisis de elementos finitos, rendering53 y visualizacin digital, etc. (Figura 18)
Figura 18. Usos de la Computacin Distribuida

Fuente: Revista Investigacin y Ciencia, Mayo, 2002.


53

Proceso de clculo complejo desarrollado por un computador y destinado a generar una imagen 3D o secuencia de imgenes 3D.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

3. Como opera la Computacin Distribuida Las dos principales entidades en un entorno de computacin 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.
Figura 19. Ejemplo de Computacin Distribuida

Fuente: Revista Investigacin y Ciencia, Mayo, 2002.

Una variante de la computacin en grilla es la computacin de ciclos redundantes, tambin conocida como computacin zombi, el cual es el mtodo empleado por aplicaciones como Seti@Home54 (bsqueda de vida extraterrestre), consistente en que un servidor o grupo de servidores distribuyen trabajo de procesamiento a un grupo de computadores voluntarias (con capacidad de procesamiento no utilizada). Bsicamente, cuando se deja un computador encendido, pero sin utilizarlo, la capacidad de procesamiento se desperdicia por lo general en algn protector de pantalla; este tipo de procesamiento distribuido utiliza el computador cuando no lo necesitamos, aprovechando al mximo la capacidad de procesamiento.

54

http:// setiathome.berkeley.edu

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

4. Ventajas de la Computacin Distribuida55 Los computadores y el acceso a la red son econmicos: Los computadores personales actuales tienen una potencia superior a los primeros mainframes56, adems de tener mucho menos tamao y precio. Comparticin de recursos: La arquitectura de la computacin distribuida refleja la arquitectura de computacin de las organizaciones modernas. Cada organizacin mantiene de forma independiente los computadores y recursos locales, mientras permite compartir recursos a travs de la red. Escalabilidad: En la computacin monoltica57, los recursos disponibles estn limitados por la capacidad de un computador. Por el contrario, la computacin distribuida proporciona escalabilidad, debido a que permite incrementar el nmero de recursos compartidos segn la demanda. Tolerancia a fallos: Al contrario que la computacin monoltica, la computacin 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. 5. Desventajas de la Computacin Distribuida Mltiples puntos de fallo: Hay ms puntos de fallo en la computacin distribuida. Ya que mltiples computadores estn implicados en la computacin distribuida, y todos son dependientes de la red para su comunicacin, el fallo de uno o ms computadores, o uno o ms enlaces de red, puede suponer problemas para un sistema de computacin distribuida. Aspectos de seguridad: En un sistema distribuido hay ms posibilidad de ocurrencia de ataques. Mientras que en un sistema centralizado los recursos estn bajo el control de una administracin nica, en un sistema distribuido la gestin es descentralizada y frecuentemente implica a un gran nmero de organizaciones independientes.

http://www.infor.uva.es/~fdiaz/so/ Ordenador central. Es un computador grande, potente y costoso usado principalmente por una gran compaa para el procesamiento de una gran cantidad de datos; por ejemplo, para el procesamiento de transacciones bancarias.
56 57

55

Para ampliar este concepto vase el numeral 1.1.3.1 en la Unidad 2

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Actividades de Autoevaluacin de la UNIDAD


Qu es un sistema de video por demanda a travs de Internet?. Describa alguno de los productos existentes para vdeo por demanda a travs de Internet. Encuentre alguno de los sitios web de empresas del negocio de video por demanda a travs de Internet. Se puede considerar un sistema de por video por demanda como sistema distribuido? Cada vez son ms comunes en el mercado los computadores sin disco local, denominados estaciones Diskless, Thin Clients, Network Computers o Network Stations. Son computadores con CPU, memoria, dispositivos de E/S y un adaptador de red de rea local. Disear un sistema informtico que permita dar soporte a estos computadores (boot, carga de aplicaciones, almacenamiento de datos), y encuadrarlo dentro de uno o varios de los modelos de sistemas distribuidos estudiados. Compararlo con un sistema centralizado de computadores con pantallas. Dnde est la diferencia? Para que sirve el archivo robots.txt?, como el archivo robots.txt controla el acceso a un sitio web?, donde se ubica robots.txt dentro de un sitio?, como se prueba si el archivo robots.txt est funcionando en un sitio web?. Que tipo de agente es y que funciones ejecutan los siguientes Agentes: Websailor, Virtual Mattie (UNIX), VisitorBot y Web Watcher. Revisar la aplicacin distribuida Wikipedia. Principalmente en la organizacin de la informacin y en la plataforma Hardware (http://es.wikipedia.org/wiki/Wikipedia). Para cada uno de los siguientes servicios, indique por que se pueden considerar como sistemas distribuidos a. Monitorizacin de la carga de mercancas a transportar por un vehculo en camino entre almacenes y tiendas. b. Una sala de chat. c. Una subasta on-line. d. Un servicio que permita a su universidad proporcionar informacin de los cursos a los estudiantes. La informacin se actualiza frecuentemente. Un programa servidor escrito en un lenguaje (por ejemplo C++) proporciona un objeto BURBUJA al que se pretende que accedan clientes que pudieran estar escritos en un lenguaje diferente (por ejemplo Java). Los computadores clientes y servidores pueden tener un hardware diferente, pero todas estn conectadas a Internet. Describa los problemas debidos a cada uno de los cinco aspectos de la heterogeneidad que necesitan resolverse para posibilitar que un objeto cliente invoque un mtodo sobre el objeto servidor. Indague acerca de las principales caractersticas de los siguientes estndares abiertos: TCP, Bluetooth, PNG y XML. Para qu se utiliza el estndar?, qu entidad a nivel mundial promueve actualmente su difusin?, en qu tipo de aplicaciones se utiliza? y cules son sus perspectivas futuras?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Explique el objetivo del modelo de referencia OSI de la ISO para la interconexin de los sistemas abierto y esboce la funcin de cada capa. En lo posible utilice grficos descriptivos. Proponga cinco tipos de recursos hardware y cinco tipos de recursos software o de datos que puedan compartirse tilmente. Proponga ejemplos de su uso compartido tal y como ocurre en la prctica en los sistemas distribuidos. Cmo podran sincronizarse los relojes de dos computadores unidos por una red local, sin hacer uso de una referencia temporal externa? Qu factores limitaran la precisin del procedimiento propuesto? Cmo podran sincronizarse los relojes de un mayor nmero de computadores conectados a Internet?. Discuta la precisin de ste procedimiento. Un usuario llega a una estacin de ferrocarril que no conoce, portando un PDA capaz de conectarse a una red inalmbrica. Sugiera cmo podra proporcionrsele al usuario informacin sobre los servicios locales y las comodidades en la estacin, sin necesidad de insertar el nombre de la estacin o sus caractersticas. Qu dificultades tcnicas hay que superar? Tome World Wide Web como ejemplo para ilustrar el concepto de comparticin de recursos, cliente y servidor. Los recursos en World Wide Web y otros servicios se direccionan mediante URL. Qu significan las siglas URL? Proporcione ejemplos de tres tipos de recursos web a los que pueda darse un nombre URL. Qu es un enrutador (router) y cuales son sus principales funciones? Qu funcin cumplen los algoritmos de vector distancia y estado de enlace dentro de Internet? Analice si una red de routers se puede considerar un Sistema Distribuido. Suponga que quiere construir una red en su casa que incluya un router con una conexin a Internet y cinco adaptadores sin cable a Ethernet. Encuentre productos especficos que convengan a sus necesidades, y proporcione su precio. Qu es un protocolo de descubrimiento y como opera? Establezca un paralelo entre los protocolos de descubrimiento SLP, Jini, Saludation, SSDP de UPnP y SDP de Bluetooth. Realice un paralelo incluyendo las principales caractersticas en torno a (3) de las siguientes plataformas software para sistemas de computacin distribuida. Plaformas: Condor, Sun Grid Environment (SGE), GridSystems, CactusCode, Globus, Unicore, OAR GRID. Consultar la pgina (http://www.distributed.net/) la cual corresponde a un proyecto a nivel mundial de computadores en malla para realizar procesos distribuidos. Indague acerca del objetivo y principales componentes de este sistema distribuido. Inscrbase y participe. Es una experiencia muy interesante para hacer parte de un proyecto de computacin distribuida. Con ayuda de dibujos describa la estructura de lo siguiente: (a) Direcciones IP (b) Datagramas IP

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Identifique claramente cada campo y explique su funcin basado en el protocolo IP. Explique las aplicaciones para las cuales est diseado el protocolo UDP. Con base en un dibujo, identifique los campos que componen la cabecera de un datagrama de usuario y explique su funcin. Mediante un dibujo, muestre los campos que componen la cabecera de un segmento de TCP y explique la funcin de cada campo. Investigue acerca de la computacin distribuida de los proyectos seti@home [http://setiathome.berkeley.edu] y genome@home [http://genomeathome.stanford.edu]. Escoja uno de ellos. Escriba un informe para (a) explicar el objetivo del proyecto, (b) explicar cmo se lleva a cabo la computacin en el sistema distribuido, y (c) explicar qu hay que hacer para participar en el proyecto.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

UNIDAD 2
Nombre de la Unidad Introduccin

ARQUITECTURA DE UN SISTEMA DISTRIBUIDO


El primer captulo presenta los tres principales modelos de los sistemas distribuidos: el modelo cliente / servidor, ampliamente utilizado en muchas aplicaciones actuales y que est en permanente evolucin, el modelo de redes igual a igual (P2P) que ha tenido una amplia expansin con el auge de internet, y el modelo de componentes, utilizado en arquitecturas de mayor complejidad y como base de las plataformas Java y Microsoft. Como elemento caracterstico de los sistemas distribuidos, surge el concepto de Middleware, la capa de software que se ubica entre el sistema operativo y las aplicaciones de los usuarios. Debido a su especial importancia se estudia ampliamente en el segundo captulo. En el tercer captulo se detallan los aspectos de diseo de un sistema distribuido, considerando entre otros las comunicaciones entre procesos, el paso de mensajes, los conceptos de socket, datagrama y stream y sus aplicaciones tanto en comunicaciones para plataformas P2P como en sistemas UNIX-LINUX, y en aplicaciones Java. La unidad finaliza con un capitulo dedicado al aspecto de la seguridad en los sistemas distribuidos, tan indispensable para la implementacin de los mismos. Se estudian las polticas y los mecanismos de seguridad, los principales factores de seguridad al igual que los diversos tipos de amenazas y ataques. Se recomienda, de manera especial, que analice cada uno de los ejemplos presentados y desarrolle la mayor parte de los ejercicios planteados en cada unidad. Para ahondar apropiadamente en el dominio de un tema es necesario conocer sus respectivas caractersticas intrnsecas y los sistemas distribuidos no son la

Justificacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Intencionalidades Formativas

excepcin. Es por ello, que sta unidad se orienta en profundizar acerca de la arquitectura de un sistema distribuido. Que el estudiante conozca los fundamentos y componentes de las diversas arquitecturas de sistemas distribuidos y determine su campo de aplicacin. Que el estudiante comprenda la importancia de la lgica de la mediacin (middleware) como elemento fundamental para incorporar en la implementacin de cualquier sistema distribuido moderno. Que el estudiante determine los elementos claves relacionados con los aspectos de diseo y seguridad que requiere un sistema distribuido. Cap. 1. Modelos de Sistemas Distribuidos Cap. 2. Middleware Cap. 3. Aspectos de Diseo de un sistema distribuido Cap. 4. Aspectos de Seguridad en un sistema distribuido

Denominacin de captulos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 1: MODELOS DE SISTEMAS DISTRIBUIDOS

Introduccin ste primer captulo presenta los tres principales modelos de los sistemas distribuidos: el modelo cliente / servidor, ampliamente utilizado en muchas aplicaciones actuales y que est en permanente evolucin, el modelo de redes igual a igual (P2P) que ha tenido una amplia expansin con el auge de internet, y el modelo de componentes, utilizado en arquitecturas de mayor complejidad y como base de las plataformas Java y Microsoft.

Leccin 1: Modelo Cliente/Servidor El trmino Cliente/Servidor fue utilizado inicialmente en los ochentas para denominar computadores personales (PCs / Personal Computers) en una red. El modelo Cliente/Servidor (Figura 20) es una arquitectura de software que posee una infraestructura modular basada en mensajes para mejorar la usabilidad, flexibilidad, interoperatividad y escalabilidad en comparacin con los modelos centralizados.
Figura 20. Comunicacin Cliente/Servidor

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Un cliente se define como un solicitador de servicios y un servidor se define como un proveedor de servicios. En el entorno Cliente/Servidor el cliente est relacionado con las funciones de presentacin de datos junto con actividades lgicas de validacin y verificacin local, mientras que el servidor desarrolla actividades relacionadas con bsqueda y recuperacin de resultados en sus bases de datos. Desde un punto de vista ms tcnico los clientes (o programas que representan entidades que necesitan servicios) y los servidores (o programas que proporcionan servicios) son objetos separados y se comunican a travs de una red de comunicaciones para realizar una o varias tareas de forma conjunta. De manera mas detallada, el cliente se caracteriza por desarrollar las siguientes funciones: Mantener y procesar todo el dialogo con el usuario Manejo de pantallas Mens e interpretacin de comandos Entrada de datos y validacin Procesamiento de ayudas y recuperacin de errores

El servidor por su parte se caracteriza por cumplir con las siguientes funciones: Acceso, almacenamiento y organizacin de datos Actualizacin de datos almacenados Administracin de recursos compartidos Ejecucin de toda la lgica para procesar una transaccin Procesamiento comn de elementos del servidor (datos, capacidad de CPU, almacenamiento en disco, capacidad de impresin, manejo de memoria y comunicacin)
Figura 21. Procesos Cliente/Servidor

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El modelo Cliente/Servidor asigna roles diferentes a los dos procesos que colaboran: El servidor interpreta el papel de proveedor de servicio, esperando de forma pasiva la llegada de peticiones. El cliente invoca determinadas peticiones al servidor y aguarda sus respuestas

Desde una concepcin simple, el modelo Cliente/Servidor proporciona una abstraccin eficiente para facilitar servicios de red. Muchos servicios de Internet dan soporte a aplicaciones Cliente/Servidor, por ejemplo: HTTP58, DNS, FTP, etc.

1. Caractersticas El empleo de la arquitectura Cliente/Servidor se basa en las siguientes propiedades caractersticas: Protocolos asimtricos: hay una relacin muchos a uno entre los clientes y un servidor. Los clientes siempre inician un dilogo mediante la solicitud de un servicio. Los servidores esperan pasivamente por las solicitudes de los clientes. Encapsulacin de servicios: El servidor es un especialista, cuando se le entrega un mensaje solicitando un servicio, el determina cmo conseguir hacer el trabajo. Los servidores se pueden actualizar sin afectar a los clientes en tanto que la interfaz pblica de mensajes que se utilice por ambos lados, permanezca sin cambiar. Integridad: el cdigo y los datos de un servidor se mantienen centralizados, lo que origina que el mantenimiento sea ms barato y la proteccin de la integridad de datos compartidos. Al mismo tiempo, los clientes mantienen su independencia y autonoma. Transparencia de localizacin: el servidor es un proceso que puede residir en la misma mquina que el cliente o otra una mquina diferente de la red. El software Cliente/Servidor habitualmente oculta la localizacin de un servidor a los clientes mediante la redireccin de servicios. Un programa puede actuar tanto como cliente, como servidor o como cliente y servidor simultneamente.

58

Protocolo de Transferencia de Hipertexto (Hiper-Text Transfer Protocol)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Intercambios basados en mensajes: Los clientes y servidores son procesos dbilmente acoplados que pueden intercambiar solicitudes de servicios y respuestas utilizando mensajes. Modularidad, diseo extensible: el diseo modular de una aplicacin Cliente/Servidor permite que la aplicacin sea tolerante a fallos. En sistemas tolerantes a fallos, los fallos pueden ocurrir sin causar la cada de la aplicacin completa. En una aplicacin Cliente/Servidor tolerante a fallos, uno o ms servidores pueden fallar sin parar el sistema total mientras que los servicios proporcionados por los servidores cados estn disponibles en otros servidores activos. Otra ventaja de la modularidad es que una aplicacin Cliente/Servidor puede responder automticamente al incremento o decremento de la carga del sistema mediante la incorporacin o eliminacin de uno o ms servicios o servidores. Independencia de la plataforma: el software Cliente/Servidor ideal es independiente del hardware o sistemas operativos, permitiendo al programador mezclar plataformas de clientes y servidores. El entorno de explotacin de clientes y servidores puede ser sobre diferentes plataformas, con el fin de optimizar el tipo de trabajo que cada uno desempea. Cdigo reutilizable: La implementacin de un mismo servicio puede utilizarse en varios servidores. Escalabilidad: Los sistemas Cliente/Servidor pueden ser escalados horizontal o verticalmente. El escalado horizontal significa aadir o eliminar estaciones clientes con un ligero impacto en el rendimiento mientras que el escalado vertical significa la migracin a una mquina servidora ms grande y rpida o la incorporacin de nuevas mquinas servidoras. Separacin de la funcionalidad del Cliente/Servidor: El modelo Cliente/Servidor es una relacin entre procesos que se ejecutan en la misma o en mquinas separadas. Un proceso servidor es un proveedor de servicios. Un cliente es un consumidor de servicios. El modelo cliente servidor proporciona una clara separacin de funciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Recursos compartidos: un servidor puede proporcionar servicios a muchos clientes al mismo tiempo, y regular el acceso de stos a un conjunto de recursos compartidos

2. Tipos de Servidores Los principales tipos de servidores encontrados en la arquitectura cliente/Servidor son: Servidores de archivos: los clientes hacen solicitudes de archivos al servidor y esto representa una forma de compartir archivos en una red (repositorios de documentos, imgenes, programas, etc.) Servidores de bases de datos: las aplicaciones del cliente mandan solicitudes SQL59 al servidor. El servidor devuelve el resultado de la consulta. Servidores de transacciones: el cliente invoca procedimientos remotos o transacciones (conjunto de instrucciones SQL) sobre la base de datos. Los datos intercambiados son: Cliente servidor: solicitud Servidor cliente: mensaje de resultado Servidores groupware: intercambio de informacin semiestructurada: texto, imgenes, u otros (Lotus Notes, Microsoft Exchange). Hace uso exhaustivo del e-mail. Servidores de aplicaciones web: Los clientes solicitan informacin Web a los servidores. La solicitud es por nombre y el protocolo es HTTP. Hay objetos web y toda clase de aplicaciones nuevas.

Leccin 2: Tipos de arquitecturas cliente-servidor Los orgenes del modelo Cliente/Servidor se basan en los sistemas de paso de mensajes (Figura 22). Los datos, representados en forma de mensajes, se intercambian entre dos procesos, un emisor y un receptor: Un proceso enva un mensaje que representa una peticin. El mensaje se entrega a un receptor, que procesa la peticin y enva un mensaje como respuesta. En secuencia, la rplica puede disparar posteriores peticiones, que llevan a nuevas respuestas, y as, sucesivamente.

59

Lenguaje de Consulta Estructurado (Structured Query Language) usado en Bases de Datos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 22. Paso de Mensajes

Fuente: Autor

Las operaciones bsicas necesarias para dar soporte al paradigma de paso de mensajes son enviar y recibir. Para comunicaciones orientadas a conexin, tambin se necesitan las operaciones conectar y desconectar

De acuerdo con la complejidad de la arquitectura utilizada, los sistemas Cliente/Servidor se clasifican en arquitecturas monolticas, arquitecturas de dos capas y arquitecturas de tres capas.

1. Arquitecturas Cliente/Servidor Monolticas (1 capa) La industria de la Tecnologa de la Informacin ha puesto en prctica una forma muy sencilla de computacin Cliente/Servidor desde la aparicin inicial de los mainframe (Figura 23).
Figura 23. Arquitectura Cliente/Servidor Monoltica

Fuente: Autor

En esa configuracin un host mainframe (microcomputador) y un terminal tonto directamente conectado con el mainframe puede verse como un modelo Cliente/Servidor de una capa.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

2. Arquitecturas Cliente/Servidor de dos capas El cliente se comunica directamente con un servidor de bases de datos. La aplicacin o lgica de negocio bien reside en el cliente, o en el servidor de base de datos en la forma de procedimientos almacenados (Figura 24). Un primer modelo Cliente/Servidor de dos capas comenz a emerger con las aplicaciones desarrolladas para redes LAN a finales de los 80 y principios de los 90. Estas aplicaciones se basaban en tcnicas sencillas de comparticin de archivos, implementadas mediante lenguajes del tipo xBase60.
Figura 24. Arquitectura Cliente/Servidor de dos capas

Fuente: Autor

Posteriormente se aadi ms complejidad a la arquitectura de dos capas y es as como surgieron los conceptos de cliente grueso (robusto) y servidor grueso. Cliente grueso Inicialmente, en el modelo de dos capas intervienen equipos que no tienen la caracterstica de mainframe (un servidor de archivos en red) y un cliente grueso inteligente, donde se hace la mayor parte del procesamiento (Figura 24). Esta configuracin no es fcilmente escalable en sistemas de gran, e incluso medio, tamao (50 o ms clientes conectados). Entonces el Interfaz Grfico de Usuario (GUI, Graphical User Interface) emerge como el entorno dominante para las
xBase se refiere genricamente a los lenguajes derivados a partir del lenguaje de dBase: dBase, FoxPro, Clipper, Paradox, etc.
60

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

aplicaciones de escritorio y con l, emerge un nuevo enfoque en el planteamiento inicial de la arquitectura de dos capas. El servidor de archivos en red de propsito general se reemplaza por un servidor de bases de datos especializado. Esto modelo origina la aparicin de nuevas herramientas de desarrollo: Powerbuilder, VisualBasic y Delphi, por citar algunas donde la mayor parte del procesamiento tiene lugar an en los clientes gruesos, pero ahora la informacin se hace llegar al cliente utilizando SQL para realizar peticiones al servidor de base de datos, que simplemente informa del resultado de las consultas. Es importante considerar los siguientes aspectos al utilizar clientes gruesos: Cuanto ms complicada la aplicacin, ms grueso pasa a ser el cliente y ms potente debe ser el hardware que debe soportarlo. El coste de adecuar la tecnologa del cliente pasa a ser prohibitivo y puede frustrar la abordabilidad de las aplicaciones. Adems, la carga de la red utilizando este tipo de clientes es muy grande, de modo que el ancho efectivo de la red (y por lo tanto del nmero de usuarios que pueden utilizarla) se reduce.

Servidor Grueso Una configuracin alternativa cliente fino Servidor grueso es otra aproximacin utilizada en la arquitectura de dos capas. En este caso el cliente invoca procedimientos almacenados en el servidor de base de datos. El modelo del Servidor grueso tiene un mejor rendimiento grueso porque aunque la carga de red es todava pesada, es ms ligera que en la aproximacin del cliente grueso. El inconveniente de esta aproximacin es que el uso de procedimientos almacenados hace depender el desarrollo excesivamente del software del vendedor. Otro inconveniente se deriva del hecho de que los procedimientos estn almacenados conjuntamente con los datos y cada base de datos que contiene el procedimiento debe modificarse cuando cambia la lgica de la aplicacin. En grandes bases de datos distribuidas esto puede conducir a una administracin tediosa. En ambos caso, se utiliza un protocolo de transporte de bases de datos (como SQL-net) para llevar las transacciones de un extremo a otro, que generalmente resulta ser un proceso pesado. No importa que modelo particular se utilice, los sistemas de dos capas no se ajustan bien cuando se manejan aproximadamente 100 usuarios.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

3. Arquitecturas Cliente/Servidor de tres capas Una generacin ms moderna de la arquitectura Cliente/Servidor aade una capa intermedia (middle tier). En la arquitectura de tres capas (en general, en la arquitectura multicapa) el cliente implementa la lgica de presentacin (cliente fino), el servidor(es) de aplicacin implementan la lgica de negocio y los datos residen en uno (o varios) servidor(es) de bases de datos (Figura 25). Una arquitectura multicapa se define por tanto por las siguientes tres capas de componentes: Un componente front-end que es el responsable de proporcionar la lgica de presentacin. Un componente back-end que proporciona acceso a servicios dedicados, tales como un servidor de bases de datos. Un componente que hace las funciones de capa intermediaria (middl tier) que permite a los usuarios compartir y controlar la lgica de negocio mediante su aislamiento de la aplicacin real.
Figura 25. Arquitectura Cliente/Servidor de tres capas

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Una arquitectura multicapa aumenta la arquitectura Cliente/Servidor tradicional mediante la introduccin de una o ms componentes intermedios. El sistema cliente interacta con la capa intermedia va un protocolo estndar como HTTP o RPC61. La capa intermedia interacta con el servidor de datos (back-end) mediante protocolos de bases de datos estndar tales como SQL, ODBC y JDBC. Esta capa intermedia contiene la mayor parte de la lgica de la aplicacin, traduciendo las llamadas del cliente en consultas (u otras acciones) a la base de datos y traduciendo los datos provenientes de la base de datos en datos del cliente para devolvrselos. Este emplazamiento de la lgica de negocio sobre el servidor de aplicaciones proporciona escalabilidad y aislamiento de la lgica de negocio con el fin de manejar rpidamente los cambios necesarios de sta. Adems, este hecho permite ampliar las opciones en lo que se refiere a la eleccin de un software propietario de bases de datos. La arquitectura de 3 capas se puede extender a <n> capas cuando la capa intermedia soporta conexiones a diferentes tipos de servicios (no slo servicios de almacenamiento de datos), integrndolos y acoplndolos al cliente y entre ellos Otras ventajas de la arquitectura Cliente/Servidor multicapa son: Cambios en la interfaz de usuario o en la lgica de la aplicacin son muy independientes entre s, permitiendo a la aplicacin evolucionar fcilmente para satisfacer los nuevos requisitos. Los cuellos de botella de la red de comunicaciones se minimizan porque la capa de aplicacin no transmite datos extras al cliente, slo lo que necesite para llevar a cabo la tarea. Cuando se requieren cambios en la lgica de negocio, slo debe actualizarse el servidor. En la arquitectura de dos capas, cada cliente debe ser modificado cuando cambia la lgica. El cliente est aislado de la base de datos y las operaciones de red. El cliente puede acceder fcil y rpidamente sin saber dnde estn los datos o cuntos servidores se estn utilizando.

61

Llamada a Procedimiento Remoto (Remote Procedure Call)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Las conexiones de bases de datos se pueden agrupar y, por tanto, compartidas por varios usuarios, lo que reduce considerablemente el coste asociado a las licencias por usuario. La organizacin es independiente de la base de datos, porque la capa de datos se escribe utilizando SQL estndar que es independiente de la plataforma. La lgica de la aplicacin se puede utilizar un lenguaje estndar como Java, C o COBOL.

Leccin 3: Redes Igual Igual (P2P) En el modelo de sistemas distribuidos igual igual (P2P / Peer-to-Peer) los procesos participantes interpretan los mismos papeles, con idnticas capacidades y responsabilidades (lo que sugiere interacciones directas entre las partes). Por ejemplo, los sistemas web para compartir archivos varios como son Napster62 y Kazaa63.
Figura 26. Modelo Peer-to-Peer

Fuente: Autor

De acuerdo con la figura 26, cada participante puede solicitar una peticin a cualquier otro participante y recibir una respuesta. Mientras que el modelo Cliente/Servidor es un modelo ideal para servicios centralizados de red, el modelo P2P resulta ms apropiado para aplicaciones como mensajera instantnea, transferencia de archivos, video-conferencia y trabajo colaborativo.
62 63

http://www.napster.com http://www.kazaa.com

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

1. Fundamentos

Las redes peer-to-peer se denominan redes informticas entre iguales y se refieren a redes que no tienen clientes y servidores fijos, sino una serie de nodos que se comportan simultneamente como clientes y como servidores de los dems nodos de la red. Este modelo de red contrasta con el modelo Cliente/Servidor el cual se rige de una arquitectura rgida donde no hay distribucin de tareas entre s, solo una simple comunicacin entre un usuario y una terminal donde el cliente y el servidor no pueden cambiar de roles. Uno de los principales servicios ofrecido por las plataformas P2P es compartir archivos. Los archivos compartidos son almacenados y entregados por los diferentes usuarios del la plataforma de red P2P. Usualmente cada usuario que forma parte de una aplicacin de red P2P comparte sus archivos a otros usuarios y tiene acceso a los archivos compartidos por otros usuarios. El modelo P2P se basa principalmente en la filosofa de que todos los usuarios deben compartir, conocida como filosofa P2P la cual es aplicada en algunas redes P2P en forma de un sistema enteramente meritocrtico en donde "el que ms comparta, ms privilegios tiene y ms acceso dispone de manera ms rpida a ms contenido". Con este sistema se pretende asegurar la disponibilidad del contenido compartido, ya que de lo contrario no sera posible la subsistencia de una red P2P. Aquellos usuarios que no comparten contenido en una red P2P, se les denomina sanguijuelas (leechers), los cuales muchas veces representan una amenaza para la disponibilidad de recursos en una red P2P debido a que solo consumen recursos sin reponer lo que consumen, por ende podran agotar los recursos compartidos de una red P2P y atentar contra la estabilidad de la misma.

2. Clasificacin de las redes P2P64

De acuerdo con el grado de centralizacin de la informacin, las redes P2P se clasifican en centralizadas, descentralizadas y mixtas.

64

http://es.wikipedia.org/wiki/P2P

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

2.1 Redes P2P centralizadas Este tipo de red P2P, se basa en una arquitectura monoltica donde todas las transacciones se hacen a travs de un nico servidor que sirve de punto de enlace entre dos nodos, y que a la vez almacena y distribuye el contenido desde sus servidores (Figura 27). Tiene la ventaja de tener una administracin muy dinmica y una disposicin ms permanente de contenido, pero tambin tiene desventajas como la muy limitada privacidad de los usuarios, y la constante amenaza de depender de un solo servidor, ya que como todo depende de un solo sitio en particular, al verse involucrado en situaciones legales una red de este tipo, es muy fcil desactivarla en su totalidad, adems de los enormes costos de mantenimiento que requiere un servidor de este tipo sin mencionar el enorme coste de banda ancha que implica.
Figura 27. Redes P2P centralizadas

Fuente: http://www.infor.uva.es/~fdiaz/sd/doc/SD_TE01_20060227.pdf

Una red P2P centralizada rene las siguientes caractersticas: Se rige bajo un nico servidor que sirve como punto de enlace entre nodos y como almacenista de contenido, el cual distribuye a peticin de los nodos. Todas las comunicaciones (como las peticiones y enrutamientos entre nodos) dependen exclusivamente de la existencia del servidor.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Algunos ejemplos de este tipo de red P2P son Napster y Audiogalaxy65.

2.2. Redes P2P "puras" o totalmente descentralizadas

Las redes P2P de este tipo son las ms comunes, siendo las mas verstiles al no requerir de un gestionamiento central de ningn tipo, lo que permite una reduccin de la necesidad de usar un servidor central, por lo que se opta por los mismos usuarios como nodos de esas conexiones y tambin como almacenistas de esa informacin (Figura 28). En otras palabras, todas las comunicaciones son directamente de usuario a usuario con ayuda de un nodo (que es otro usuario) quien permite enlazar esas comunicaciones.
Figura 28. Redes P2P descentralizadas

Fuente: http://www.infor.uva.es/~fdiaz/sd/doc/SD_TE01_20060227.pdf

Las redes P2P descentralizadas poseen las siguientes caractersticas:


65

Los nodos actan como cliente y servidor. No existe un servidor central que maneje las conexiones de red. No hay un router central que sirva como nodo y administre direcciones.

http://www.audiogalaxy.com

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Algunos ejemplos de una red P2P "pura" son: Ares Galaxy66, Freenet68 y Gnutella269.

Gnutella67,

2.3. Redes P2P hbridas, semi-centralizadas o mixtas En este tipo de red, se puede observar la interaccin entre un servidor central que sirve como hub70 (concentrador) y administra los recursos de banda ancha, enrutamientos y comunicacin entre nodos pero sin saber la identidad de cada nodo y sin almacenar informacin alguna, por lo que el servidor no comparte archivos de ningn tipo a ningn nodo (Figura 29). Tiene la peculiaridad de funcionar de ambas maneras, es decir, puede incorporar ms de un servidor que gestione los recursos compartidos, pero tambin en caso de que el o los servidores que gestionan todo caigan, el grupo de nodos sigue en contacto a travs de una conexin directa entre ellos mismos con lo que es posible seguir compartiendo y descargando ms informacin en ausencia de los servidores.
Figura 29. Redes P2P hibridas

Fuente: http://www.infor.uva.es/~fdiaz/sd/doc/SD_TE01_20060227.pdf

http://aresgalaxy.sourceforge.net http://www.gnutella.com 68 http://freenetproject.org 69 http://www.gnutella2.com 70 Equipo de redes que permite conectar entre s otros equipos y retransmite los paquetes que recibe desde cualquiera de ellos a todos los dems.
67

66

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Las redes P2P Hibridas tienen las siguientes caractersticas: Tienen un servidor central que guarda informacin en espera y responde a peticiones para esa informacin. Los nodos son responsables de hospedar la informacin (pues el servidor central no almacena la informacin), lo que permite al servidor central reconocer los recursos que se desean compartir, y para poder descargar esos recursos compartidos a los equipos que lo solicitan. Las terminales de enrutamiento son direcciones usadas por el servidor, que son administradas por un sistema de ndices para obtener una direccin absoluta.

Algunos ejemplos de una red P2P hbrida son Bittorrent71 y eMule.

2.4 Arquitectura P2P Los sistemas P2P para compartir recursos se basan en la utilizacin de Tablas Hash Distribuidas (THD) que permiten indizar la informacin de muchos recursos (archivos, programas, documentos, canciones, etc). Bsicamente una THD realiza las funciones de una tabla hash almacenando parejas (clave, valor) y recuperando un valor si se tiene la respectiva clave (Figura 30). Lo fundamental de las THD es que las bsquedas se realizan en diferentes mquinas (nodos de la red P2P) y en un entorno dinmico (con nodos ingresando y dejando frecuentemente la red). Las THD se almacenan como listas circulares doblemente enlazadas donde cada nodo.
Figura 30. Operacin Tabla Hash

Fuente: Autor
71

http://www.torrents.to

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 4: Modelos de Componentes

Una ltima arquitectura de los modelos de Sistemas Distribuidos, son los modelos de componentes que se incorporan como la base de algunos sistemas operativos de red. Un modelo de componentes se caracteriza por: Definir la forma de las interfaces de sus componentes. Determinar los mecanismos de composicin y comunicacin entre ellos. Especificar la forma en la que se proveen los servicios (seguridad, comercio, impresin, autenticacin, etc.) Reutilizacin de componentes para el desarrollo acelerado de aplicaciones.

Los modelos de componentes de mayor difusin mundial y que sern analizados en los siguientes prrafos son: el modelo de componente Sun (J2EE72) y el modelo de componentes de Microsoft.

1. Modelo de Componentes de Sun El modelo de componentes de Sun (J2EE) se caracteriza por utilizar el estndar javabeans, el cual define los beans73 como los componentes del modelo. Los beans que utiliza el modelo se caracterizan por que: Son componentes software reutilizables que pueden ser manipuladas de forma visual por herramientas de desarrollo de aplicaciones. Poseen funcionalidades muy distintas: botn, hoja de clculo, etc. Los EJBs proporcionan un modelo de componentes distribuido estndar para el lado del servidor. El objetivo de los Enterprise beans (EJB) es dotar al programador de un modelo que le permita abstraerse de los problemas generales de una aplicacin empresarial (concurrencia, transacciones, persistencia, seguridad, etc.) para centrarse en el desarrollo de la lgica de negocio en s. El hecho de estar basado en componentes permite que stos sean flexibles y sobre todo reutilizables.
Edicin Empresarial del paquete Java (Java 2 Enterprice Edition). Comprenden un conjunto de especificaciones y funcionalidades orientadas al desarrollo de aplicaciones empresariales. 73 Componentes de software reutilizables que se puedan manipular visualmente en una herramienta de construccin
72

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 31. Modelo de Componentes de SUN

Fuente: www.it.uc3m.es/mcfp/docencia/si/material/10_ccm.pdf

2. Modelo de Componentes de Microsoft

En plataformas Microsoft WINDOWS se suele designar a COM (Component Objetc Model / Modelo de Objetos Componentes) como un modelo de programacin orientada a objetos que trabaja entre diferentes lenguajes, DLLs y programas. Define un sistema para crear objetos que se ejecutan no solo sobre un computador sino sobre un amplio rango de computadores. COM soporta diferentes lenguajes y compiladores y su OOP (object oriented programming / programacin orientada a objetos) se ejecuta a nivel de sistema operativo.

DCOM (Distributed Component Object Model / Modelo Distribuido de Objetos Componentes) es una forma de distribuir objetos a travs de una red. Con DCOM se pueden crear objetos que se ejecutan en uma gran variedad de servidores y que pueden ser llamados desde lenguajes como Delphi, Visual Basic, C++ o desde aplicaciones como Word, Excel, etc.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 32. Modelo de componentes distribuidos de Microsoft

Fuente: www.it.uc3m.es/mcfp/docencia/si/material/10_ccm.pdf

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 2: MIDDLEWARE

Introduccin Como elemento caracterstico de los sistemas distribuidos, surge el concepto de Middleware, la capa de software que se ubica entre el sistema operativo y las aplicaciones de los usuarios. Debido a su especial importancia se estudia ampliamente en el siguiente captulo.

Leccin 5: Fundamentos de Middleware En un Sistema Distribuido, el middleware (lgica de la mediacin) es un software de conectividad que permite ofrecer un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogneas. Como se muestra en la figura 33, el middleware funciona como una capa de abstraccin de software distribuida que se sita entre las capas de aplicaciones y las capas inferiores (sistema operativo y red).
Figura 33. Middleware

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El middleware permite abstraer las funciones de un sistema distribuido, de la complejidad y heterogeneidad de las redes de comunicaciones subyancentes, as como de los sistemas operativos y lenguajes de programacin, proporcionando una API (Application Programming Interface / Interfaz de Programacin de Aplicaciones) para la fcil programacin y manejo de aplicaciones distribuidas (Figura 34). Dependiendo del problema a resolver y de las funciones necesarias se requieren diferentes tipos de servicios de middleware.
Figura 34. Middleware y APIs

Fuente: http://www.infor.uva.es/~fdiaz/sd/doc/SD_TE01_20060227.pdf

El Middleware es fundamental para: Migrar las aplicaciones monolticas basadas en mainframes a aplicaciones Cliente/Servidor. Soportar la comunicacin entre procesos a travs de plataformas heterogneas.

Segn se aprecia en la figura 35, los servicios del middleware son una capa de software distribuida, que se localiza entre la aplicacin y la plataforma concreta sobre la que se implementa la aplicacin (Sistema Operativo + Red). Los servicios del middleware proporcionan un conjunto de APIs ms funcional que el sistema operativo y los servicios de red para permitir a una aplicacin:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 35. Sistema distribuido visto como Middleware

Fuente: Autor.

Localizacin transparente a travs de la red, proporcionando interaccin con otra aplicacin o servicio. Ser independiente de los servicios de red. Ser fiable y disponible. Ser escalable, en el sentido de poder aumentar su capacidad sin prdida de funcionalidad.

Funciones Middleware Las aplicaciones middleware realizan las siguientes funciones: Ocultar la distribucin: middleware maneja el hecho de que una aplicacin est compuesta de muchas partes interconectadas ejecutndose en ubicaciones distribuidas. Ocultar la heterogeneidad: middleware oculta o hace transparente al usuario diversas plataformas de sistemas operativos, protocolos de comunicacin y dispositivos hardware. Proveer interfaces uniformes y estndares de alto nivel: tanto a los desarrolladores como a los integradores de aplicaciones, de tal manera que las aplicaciones sean fcilmente desarrolladas, reusadas, transportadas y puedan interoperar correctamente.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Suministrar un conjunto de servicios comunes: para realizar varias actividades de propsito general con el fn de evitar duplicar esfuerzos y facilitar la colaboracin entre aplicaciones.

Leccin 6: Componentes Middleware

El middleware esta compuesto de agentes de software que generalmente actan entre el sistema operativo y las aplicaciones, con la finalidad de proveer comunicacin entre diferentes aplicaciones en un sistema distribuido. Las funciones que realiza el middleware dentro de un cluster de servidores (datacenter74) son: Una interfaz nica de acceso al sistema, denominada SSI75, la cual genera la sensacin al usuario de que utiliza un nico computador muy potente. Herramientas para la optimizacin y mantenimiento del sistema: migracin de procesos, checkpoint-restart (congelar uno o varios procesos, mudarlos de servidor y continuar su funcionamiento en el nuevo host), balanceo de carga, tolerancia a fallos, etc. Escalabilidad: debe poder detectar automticamente nuevos servidores conectados al cluster para proceder a su utilizacin.

Existen diversos tipos de middleware, como por ejemplo: MOSIX76, OpenMOSIX77, Condor78, OpenSSI79, etc. El middleware recibe los trabajos entrantes al cluster y los redistribuye de manera que el proceso se ejecute ms rpido y el sistema no sufra sobrecargas en un servidor. Esto se realiza mediante polticas definidas en el sistema
Centro de datos. Ubicacin donde se concentran todos los recursos necesarios para el procesamiento de informacin de una organizacin. Dichos recursos consisten esencialmente en unas dependencias debidamente acondicionadas, computadores y redes de comunicaciones. 75 Imagen Particular del Sistema (Single System Image). Es una propiedad de un sistema que oculta la naturaleza heterognea y distribuida de los recursos, y los presenta a los usuarios y a las aplicaciones como un recurso computacional unificado y sencillo 76 http://www.mosix.org 77 http://openmosix.sourceforge.net 78 http://www.cs.wisc.edu/condor 79 http://openssi.org
74

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

(automticamente o por un administrador) que le indican dnde y cmo debe distribuir los procesos, por un sistema de monitorizacin, el cual controla la carga de cada CPU y la cantidad de procesos en l. El middleware tambin debe poder migrar procesos entre servidores con distintas finalidades: Balancear la carga: si un servidor est muy cargado de procesos y otro est ocioso, pueden transferirse procesos a este ltimo para liberar de carga al primero y optimizar el funcionamiento. Mantenimiento de servidores: si hay procesos corriendo en un servidor que necesita mantenimiento o una actualizacin, es posible migrar los procesos a otro servidor y proceder a desconectar del cluster al primero. Priorizacin de trabajos: en caso de tener varios procesos corriendo en el cluster, pero uno de ellos de mayor importancia que los dems, puede migrarse este proceso a los servidores que posean ms o mejores recursos para acelerar su procesamiento.

Leccin 7: Servicios middleware

Dentro de los principales servicios que se pueden ofrecer con una plataforma middleware se encuentran los siguientes: Administracin de Objetos: Soporta desde simples tipos de datos hasta grandes volmenes de informacin. Administracin de Documentos: Usa el servicio de administracin de objetos y adems nombra y organiza documentos. Soporta el lenguaje de frmulas (lenguaje de script para construir aplicaciones de usuarios). Seguridad: soporta encripcin, firmas digitales y control de acceso discrecional. Indexamiento: Suministra acceso indexado tanto a resmenes como a contenidos completos de documentos. Opera con herramientas de recuperacin basadas en contenido y descriptores de documentos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Mensajera: soporta direccionamiento y transporte de correos, incluyendo direccionamientos a grupos de nombres y nombres jerrquicamente organizados. Eventos: Soportar notificacin dinmica a travs de mensajes de correo o registro de Bitcora (Log). Registro (Logging): Para auditar eventos. Nombrado: Soporta enlaces Cliente/Servidor y lo integra con servicios de transporte y seguridad. Administracin del Sistema: Soporta control de administracin desde consolas remotas. Adems de lo anterior, los siguientes componentes podran ser servicios Middleware: Administracin de Presentaciones: Administrador de formas, administrador de grficos, enlazador de hipermedios y administrador de impresin. Computacin: Ordenamientos, servicios matemticos de clculos, servicios de internacionalizacin (para manipulacin de alfabetos y caracteres). Administracin de la Informacin: Servidor de Directorios, Administrador de Logs, administrador de archivos, administrador de registros, sistemas de bases de datos relacionales, sistemas de bases de datos orientadas a objetos, administrador de bodegas de datos. Comunicaciones: Mensajera Peer-to-Peer (P2P), Llamadas a procesos remotos (RPC), colas de mensajes, correo electrnico, intercambio electrnico de datos (EDI). Administracin de Sistemas: Servicio de notificacin de eventos, servicios de contabilidad, administrador de la configuracin de dispositivos, administrador de instalacin de software, detector de fallas, coordinador de recuperaciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 8: Ventajas y campos de aplicacin del middleware

Entre las principales ventajas que se obtienen al utilizar el middleware se encuentran: Simplifica el proceso de desarrollo de aplicaciones al independizar los entornos propietarios. Permite la interconectividad de los diferentes Sistemas de Informacin de una organizacin. Proporciona mayor control del negocio al poder contar con informacin procedente de distintas plataformas sobre el mismo soporte. Facilita el desarrollo desistemas complejos con diferentes tecnologas y arquitecturas. Dentro de los inconvenientes ms importantes se destacan la mayor carga de mquina necesaria para que puedan funcionar.

Los sistemas middleware tienen un amplio rango de aplicaciones, de los cuales se describirn los ms importantes: Migracin de los Sistemas Host. Reingeniera de Aplicaciones Toda aplicacin empresarial debera disearse en base a mdulos intermedios middleware encargados de la comunicacin entre el ordenador personal y el host. Con el uso de middleware se puede desarrollar una aplicacin sin tener en cuenta los futuros cambios tecnolgicos que puedan sufrir los sistemas host. Si el sistema host cambia, o las aplicaciones de host se migran a plataformas de ordenadores personales, todo lo que se necesita es un nuevo mdulo middleware. La interfaz de usuario, la lgica y el cdigo interno permanecen sin cambios. Por ejemplo, si el equipo lgico del sistema host se traslada desde el mainframe a una base de datos de plataforma PC ejecutndose en un servidor de archivos, slo hay que sustituir el mdulo de middleware de forma que realice llamadas SQL. Interconectividad Uno de los usos ms importantes de las herramientas de middleware es la de facilitar la interconectividad de los diferentes sistemas de una organizacin integrando las diferentes islas de informacin departamentales.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Arquitectura orientada a objetos distribuidos El concepto de middleware permite tambin independizar los servicios proporcionados por diferentes objetos que se encuentran en una red proporcionando una red de objetos independientes e interconectados entre s. Arquitectura cliente/servidor La utilizacin de middleware permite desarrollar aplicaciones en arquitectura cliente servidor independizando los servidores y clientes, facilitando la interrelacin entre ellos y evitando dependencias de tecnologas propietarias.

Como se puede apreciar, la tecnologa emergente middleware est constituyndose en una plataforma fundamental para la operacin de los sistemas en las organizaciones. En el captulo uno de la tercera unidad se realizar una exposicin detallada de uno de los sistmas Middleware de mayor uso actualmente, el sistema operativo distribuido CORBA.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 3: ASPECTOS DE DISEO DE UN SISTEMA DISTRIBUIDO

Introduccin El desarrollo e implementacin de un Sistema Distribuido requiere tener muy en cuenta los aspectos de diseo, entre los que se destacan los diferentes mtodos de comunicacin entre procesos, la utilizacin de APIs, el diseo de sockets y las estructuras de los mensajes.

Leccin 9: Comunicacin entre procesos La comunicacin entre procesos (Figura 36) es un conjunto de tcnicas para el intercambio de datos entre dos o ms hilos80 en uno o ms procesos. Los procesos pueden estar en ejecucin en un computador o en dos o ms computadores conectados en red.
Figura 36. Comunicacin entre Procesos

Fuente: Autor

Las tcnicas de comunicacin entre procesos son divididas en mtodos para: paso de mensajes, sincronizacin, memoria compartida y llamada de procedimiento remoto (RPC / Remote procedure call). A continuacin se presentan los diferentes

Es un proceso concurrente que es parte de un proceso mayor o de un programa. En un sistema operativo multitarea, un simple programa puede tener varios hilos, todos ejecutndose al mismo tiempo. Ejemplo: Una parte de un programa puede estar haciendo un clculo mientras que otra parte est dibujando un grfico.

80

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

mtodos de comunicacin entre procesos y los sistemas operativos en los cuales operan:
Mtodo de CEP Archivo Seal Socket Pipe / canal Semforo Memoria Compartida Paso de Mensajes Mapeo de Memoria Cola de Mensajes Buzn de Correo Suministrado por los Sistemas Operativos Todos los Sistemas Operativos UNIX, LINUX, WINDOWS con la librera C Runtime WINDOWS, UNIX, LINUX UNIX, LINUX UNIX, LINUX UNIX, LINUX Java RMI, CORBA UNIX, LINUX, WINDOWS mediante APIs WINDOWS, UNIX, LINUX WINDOWS, UNIX, LINUX

1. Paso de mensajes

El paso de mensajes (Figura 37) es una tcnica empleada en programacin concurrente para aportar sincronizacin entre procesos y permitir la exclusin mutua, de manera similar a como se hace con los semforos, monitores, etc. Los elementos principales que intervienen en el paso de mensajes son el proceso que enva, el que recibe y el mensaje. Dependiendo de la confiabilidad del mensaje la tcnica de paso de mensajes es: No Fiable: El mensaje puede llegar una vez, ms de una vez, ninguna vez (por ejemplo, UDP81). Fiable: El mensaje llega exactamente una vez (por ejemplo, TCP82).

81 Protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envo de datagramas a travs de la red sin que se haya establecido previamente una conexin, ya que el propio datagrama incorpora suficiente informacin de direccionamiento en su cabecera.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 37. Sistema Cliente/Servidor con Paso de Mensajes

Fuente: Autor

Ordenacin FIFO: Se garantiza que los mensajes se entregan al receptor en el orden en el que fueron enviados por el emisor (por ejemplo, TCP).

2. API para protocolos en Internet: UDP, TCP La interfaz del programa de aplicacin (API) para UDP proporciona una abstraccin del tipo paso de mensajes, la forma ms simple de comunicacin entre procesos (Figura 38). Esto hace que el proceso emisor pueda transmitir un mensaje simple al proceso receptor. Los paquetes independientes que contienen estos mensajes se llaman datagramas83. Tanto en Java como en cada API UNIX, el emisor especifica el destino utilizando un zcalo, conector o socket (una referencia indirecta a un puerto particular utilizada por el proceso destino en el computador destino).

82 Protocolo del nivel de transporte basado en el intercambio de flujo de datos. Muchos programas dentro de una red de datos compuesta por computadores pueden usar TCP para crear conexiones entre ellos a travs de las cuales enviarse datos. El protocolo garantiza que los datos sern entregados en su destino sin errores y en el mismo orden en que se transmitieron. Tambin proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina, a travs del concepto de puerto. 83 Fragmento de paquete que es enviado con la suficiente informacin como para que la red pueda simplemente encaminar el fragmento hacia el computador receptor, de manera independiente a los fragmentos restantes.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 38. API para protocolos en Internet

Fuente: Autor

La interfaz del programa de aplicacin de TCP proporciona la abstraccin de un flujo (stream) de dos direcciones entre pares de procesos. La informacin intercambiada consiste en un flujo de tems de datos sin lmites entre mensajes. Los flujos son un bloque bsico para la construccin de la comunicacin productor-consumidor. Un productor y un consumidor forman un par de procesos en los cuales el papel del primero es producir tems de datos y el papel del segundo es consumirlos. Los tems de datos enviados por el productor al consumidor se colocan en una cola a su llegada hasta que el consumidor est en disposicin de recibirlos. El consumidor debe esperar cuando no haya datos disponibles. El productor debe esperar si se llena el almacenamiento utilizado para guardar la cola con los tems de datos.

3. Caractersticas de la comunicacin entre procesos84 Para que un proceso se pueda comunicar con otro, el proceso enva un mensaje (una secuencia de bytes) a un destino y otro proceso en el destino recibe el mensaje. Esta actividad implica la comunicacin de datos desde el proceso emisor al proceso receptor y puede implicar adems la sincronizacin de los dos procesos. A continuacin se resaltan las caractersticas ms importantes de la comunicacin entre procesos:

3.1 Comunicacin sncrona y asncrona A cada destino de mensajes se asocia una cola. Los procesos emisores producen mensajes que son aadidos a las colas remotas mientras que los procesos receptores eliminan mensajes de las colas locales. La comunicacin entre los procesos emisor y
84

COULOURIS George, DOLLIMORE Jean y KINDBERG Tim (2001): SISTEMAS DISTRIBUIDOS Conceptos y Diseo. Pearson Addison Wesley.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

receptor puede ser sncrona o asncrona. En la forma sncrona, los procesos receptor y emisor se sincronizan con cada mensaje. En este caso, tanto enva como recibe son operaciones bloqueantes. A cada enva producido, el proceso emisor se bloquea hasta que se produce el correspondiente recibe. Cuando se invoca un recibe, el proceso se bloquea hasta que llega un mensaje.

En la forma de comunicacin asncrona, la utilizacin de la operacin enva es no bloqueante, de modo que el proceso emisor puede continuar tan pronto como el mensaje haya sido copiado en el bfer local, y la transmisin del mensaje se lleva a cabo en paralelo con el proceso emisor. La operacin recibe puede tener variantes bloqueantes y no bloqueantes. En la variante no bloqueante, el proceso receptor sigue con su programa despus de invocar la operacin recibe, la cual proporciona un bfer que es llenado en un segundo plano, pero el proceso debe ser informado por separado de que su bfer ha sido llenado, ya sea por el mtodo de encuesta o mediante una interrupcin.

3.2 Destinos de los mensajes En los protocolos Internet, los mensajes son enviados a direcciones construidas por pares (direccin Internet, puerto local)85. Un puerto local es el destino de un mensaje dentro de un computador, especificado como un nmero entero. Un puerto tiene exactamente un receptor pero puede tener muchos emisores. Los procesos pueden utilizar mltiples puertos desde los que recibir mensajes. Cualquier proceso que conozca el nmero de puerto apropiado puede enviarle un mensaje. Generalmente, los servidores hacen pblicos sus nmeros de puerto para que sean utilizados por los clientes.

Si el cliente utiliza una direccin Internet fija para referirse a un servicio, entonces ese servicio debe ejecutarse siempre en el mismo computador para que la direccin se considere vlida.

3.3 Fiabilidad

85

Un ejemplo puede ser direccion: 192.168.6.45 puerto: 23

Notacin 192.168.6.45:23

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Una comunicacin fiable se puede manejar en trminos de validez e integridad. En lo que concierne a la propiedad de validez, se dice que un servicio de mensajes punto a punto es fiable si se garantiza que los mensajes se entregan a pesar de poder dejar caer o perder un nmero razonable de ellos. Por el contrario, puede decirse que un servicio de mensajes punto a punto es no fiable si no se garantiza la entrega de los mensajes ante la prdida o eliminacin incluso de un solo paquete. Respecto a la integridad, los mensajes deben llegar sin corromperse ni duplicarse.

3.4 Ordenacin Algunas aplicaciones necesitan que los mensajes sean entregados en el orden de su emisin, esto es, en el orden en el que fueron transmitidos por el emisor. La entrega de mensajes desordenados, por esas aplicaciones, es considerada como un fallo.

4. Sockets Ambas formas de comunicacin (UDP y TCP) utilizan la abstraccin de sockets86, que proporciona los puntos extremos de la comunicacin entre procesos. Los sockets (conectores) se originan en UNIX BSD aunque estn presentes en la mayora de las versiones de UNIX, incluido LINUX y tambin WINDOWS NT y Macintosh OS. La comunicacin entre procesos consiste en la transmisin de un mensaje entre un conector de un proceso y un conector de otro proceso, segn se muestra en la figura 39.
Figura 39. Sockets

86

Mecanismo de comunicacin entre procesos. Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadores distintos) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada. Un socket queda definido por un protocolo, por una direccin IP y un nmero de puerto. Ejemplo: ftp://201.45.23.45:21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Para los procesos receptores de mensajes, su conector debe estar asociado a un puerto local y a una de las direcciones Internet del computador donde se ejecuta. Los mensajes enviados a una direccin de Internet y a un nmero de puerto concretos, slo pueden ser recibidos por el proceso cuyo conector est asociado con esa direccin y con ese puerto.
Figura 40. Operacin de los protocolos TCP y UDP

Fuente: Autor

Los procesos pueden utilizar un mismo conector tanto para enviar como para recibir mensajes. Cada computador permite un gran nmero (216) de puertos posibles, que pueden ser usados por los procesos locales para recibir mensajes. Cada proceso puede utilizar varios puertos para recibir mensajes, pero un proceso no puede compartir puertos con otros procesos del mismo computador. No obstante, cualquier cantidad de procesos puede enviar mensajes a un mismo puerto. Cada conector se asocia con un protocolo concreto, que puede ser UDP o TCP.

Leccin 10: Comunicacin entre procesos en plataformas UNIX LINUX

Las operaciones bsicas (primitivas) para la comunicacin entre procesos para platformas LINUX UNIX son proporcionadas como llamadas al sistema e implementadas como una capa sobre los protocolos TCP y UDP. Los destinos de los mensajes se especifican como direcciones de conectores; una direccin de conector consta de una direccin Internet y un nmero de puerto local.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El proceso de comunicacin se desarrolla de la siguiente manera: los mensajes se colocan en una cola en el conector emisor hasta que el protocolo de red (IP) los transmite, y all permanecen hasta que llega el correspondiente reconocimiento, si es que el protocolo as lo requiere. Cuando llega un mensaje, se coloca en una cola en el conector receptor hasta que el proceso destinatario realiza la correspondiente llamada al sistema para recogerlo.

Cualquier proceso puede crear un conector para utilizarlo en la comunicacin con otro proceso. Esto se realiza invocando a la llamada al sistema socket, cuyos argumentos especifican el dominio de comunicacin (normalmente Internet), el tipo (datagrama o flujo) y en algunas ocasiones un protocolo particular. El protocolo (por ejemplo, TCP o UDP) es seleccionado normalmente por el sistema dependiendo de si el tipo de comunicacin es de datagramas o de flujos.

Antes de poder comunicar un par de procesos, el receptor debe enlazar su descriptor de conector con una direccin de conector. El emisor tambin debe enlazar su descriptor de conector con una direccin de conector si necesita responder. Para este propsito se utiliza la llamada al sistema bind; cuyos argumentos son el descriptor del conector y una referencia a una estructura que contiene la direccin del conector con la que se va a ligar el conector. Una vez que un conector est ligado a una direccin, sta no puede cambiar.

Algunas direcciones son pblicas en el sentido de que pueden ser utilizadas como destinos por cualquier proceso. Despus de que un proceso ha ligado su conector a una direccin de conector, el conector puede ser apuntado indirectamente por otro proceso refirindose a la direccin de conector apropiada. Cualquier proceso, por ejemplo un servidor que planea recibir mensajes a travs de su conector, debe primero enlazar ese conector a una direccin de conector y hacer que la direccin sea conocida por los potenciales clientes.

A continuacin se presentan de manera breve los elementos claves de comunicacin de datagramas (protocolo UDP) y de comunicacin con flujos (protocolos TCP)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

1. Comunicacin de Datagramas

Para poder enviar datagramas, se identifica el par de conectores (emisor y receptor) cada vez que se realiza una comunicacin. Esto se logra en el proceso emisor utilizando su descriptor de conector local y la direccin del conector receptor cada vez que enva un mensaje.
Figura 45. Conectores usados para Datagramas

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

El proceso de comunicacin con datagramas representado en la figura 45 se describe a continuacin: Ambos procesos utilizan la llamada socket para crear un conector y conseguir un descriptor para l. El primer argumento de socket especifica el dominio de comunicacin como el dominio Internet, y el segundo argumento indica que se va a necesitar una comunicacin de datagramas. El ltimo argumento de la llamada socket puede utilizarse para especificar un protocolo particular, pero si se pone a cero produce que el sistema seleccione el protocolo adecuado (UDP en este caso). Ambos procesos, entonces, utilizan la llamada bind para enlazar sus conectores a las direcciones de conector. El proceso emisor enlaza su conector a una direccin de conector dada por cualquier puerto local libre. El proceso receptor enlaza su conector a una direccin de conector que contiene un puerto de servidor que debe ser conocido por el emisor. El proceso emisor utiliza la llamada sendto, con argumentos que especifican el socket a travs del cual va a ser enviado el mensaje, el mensaje mismo y (una referencia a la estructura que contiene) la direccin del conector destino. La llamada sendto pasa el mensaje a las capas subyacentes UDP e IP y devuelve el

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

nmero de bytes enviados. Como hemos solicitado un servicio de datagramas, el mensaje es transmitido a su destino sin acuse de recibo. El proceso receptor utiliza la llamada recvfrom con argumentos que especifican el conector local en el que se recibe el mensaje, las direcciones de memoria en las que se almacena el mensaje y (una referencia a la estructura que contiene) la direccin de conector del conectar emisor. La llamada recvfrom toma el primer mensaje en la cola del conector, o si la cola est vaca espera a que llegue uno. La comunicacin se produce exclusivamente cuando un sendto en un proceso dirige su mensaje al conector utilizado por recvfrom en otro proceso. En una comunicacin cliente-servidor, no existe necesidad de que los servidores tengan conocimiento previo de las direcciones de los conectores de los clientes, ya que la operacin recvfrom proporciona la direccin del emisor con cada mensaje que entrega.

2. Comunicacin de Flujos

Antes de utilizar el protocolo de Flujos, dos procesos deben establecer una conexin entre sus pares de conectares. Una vez que un par de conectores han sido conectados, pueden utilizarse para transmitir datos en ambas o en cualquier direccin. Esto es, se comportan como Flujos en los que cualquier dato disponible se lee inmediatamente en el mismo orden en que fue escrito. Sin embargo, existe una cola limitada en el conector receptor y el receptor se bloquea si la cola est vaca; y el emisor se bloquea si la cola est llena. Para la comunicacin entre clientes y servidores, los clientes solicitan conexiones y los servidores que escuchan esas peticiones las aceptan. El proceso de comunicacin con datagramas representado en la figura 46 se describe a continuacin: El servidor, o proceso en escucha, utiliza primero la operacin socket para crear un conector de flujo y despus la operacin bind para enlazar su conector a la direccin del conector de servidor. El segundo argumento de la llamada al sistema socket es SOCK_FLUJO, para indicar que se requiere una comunicacin de Flujos. El tercer argumento se deja a cero, de modo que se seleccione el protocolo TCP/IP de forma automtica. Utiliza la operacin listen para escuchar en su conector las peticiones de conexin de los clientes. El segundo argumento de

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

listen especifica el nmero mximo de peticiones de conexin que admite la cola de espera de ese conector.
Figura 46. Conectores usados para Flujos

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

El servidor utiliza la llamada al sistema accept para aceptar una conexin solicitada por un cliente y obtener un nuevo conector para la comunicacin con el cliente. El conector original contina en uso para aceptar futuras peticiones de conexin de otros clientes. El proceso cliente utiliza la operacin socket para crear un conector de flujo y entonces utiliza la llamada al sistema connect para solicitar una conexin a travs de la direccin de conector del proceso en escucha. Como la llamada al sistema connect enlaza automticamente el conector con una direccin de conector, no es necesario un enlace previo. Despus de que se ha establecido una conexin, ambos procesos pueden utilizar las operaciones write y read en sus respectivos conectores para enviar y recibir secuencias de bytes a travs de la conexin. La operacin write es similar a la operacin de escritura en archivos. Especifica el mensaje a enviar al conector. Confa el mensaje a los protocolos TCP/IP subyacentes y devuelve el nmero de bytes enviados. La operacin read recibe caracteres en su bfer y devuelve el nmero de bytes recibidos.

3. Comunicacin en plataformas P2P - Sistemas de Mensajes

Los Sistemas de Mensajes proporcionan un mtodo de comunicacin entre aplicaciones o componentes software y son utilizados principalmente para el desarrollo de aplicaciones P2P donde cliente del sistema puede enviar y recibir

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

mensajes de cualquier otro cliente. Cada cliente se conecta a un agente del sistema de mensajes que proporciona facilidades para crear, enviar, recibir y leer mensajes. Los sistemas de mensajes habilitan comunicaciones entre procesos distribuidos con un bajo acoplamiento. Un componente enva un mensaje a un destino y el receptor puede recuperar un mensaje de un destino. Sin embargo, el emisor y el receptor no tienen porqu estar disponibles al mismo tiempo para poder comunicarse, de hecho, el emisor no necesita conocer nada sobre el receptor, ni el receptor conocer nada sobre el emisor. El emisor y receptor slo necesitan conocer que formato de mensaje y qu destino utilizar. Esta es una diferencia frente a modelos de comunicacin distribuidos fuertemente acoplados, como por ejemplo la Invocacin Remota de Mtodos, que requieren que la aplicacin conozca los mtodos remotos.

4. Caractersticas y utilizacin Cualquier sistema de mensajes posee las siguientes propiedades caractersticas: Soporta el reparto asncrono de mensajes, es decir, repartir los mensajes cuando lleguen los clientes, sin necesidad de que tengan que solicitar los mensajes para recibirlos. Es un sistema fiable, es decir, tener la posibilidad de garantizar que un mensaje slo se reparte una, y slo una, vez.

Aunque parecido en la filosofa al sistema de correo electrnico, su uso est orientado a comunicar aplicaciones o componentes software en lugar de interconectar personas o aplicaciones con personas. La utilizacin de los Sistemas de Mensajes es adecuada cuando se dan las siguientes circunstancias: Se requiere que los componentes no dependan de la informacin acerca de otras interfaces de componentes, de forma que los componentes puedan reemplazarse fcilmente. Se requiere que la aplicacin se ejecute independientemente de si todos los componentes estn activos y ejecutndose simultneamente. El modelo de negocio de la aplicacin permite que un componente enve informacin a otro y pueda seguir operando sin recibir una respuesta inmediata.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Con el fin de clarificar los conceptos se presenta la siguiente situacin que se da en el mundo del automvil: Un fabricante de automviles utiliza un componente software para gestionar su inventario de automviles fabricados. Cuando el nmero de unidades de un determinado modelo baja de una determinada cantidad, el componente inventario puede enviar un mensaje al componente fbrica, solicitando la fabricacin de ms coches. El componente fbrica puede enviar mensajes a los componentes suministradores de piezas para obtener las piezas necesarias en la fabricacin de nuevos coches. Los componentes asociados a los suministradores de piezas pueden enviar mensajes a sus propios inventarios y departamentos de pedidos para actualizar su inventario, y si llega el caso, solicitar pedidos a sus Proveedores. Tanto la fbrica como los suministradores de piezas pueden enviar mensajes al componente de contabilidad para actualizar sus cuentas. La empresa puede comunicar su catlogo de productos actualizados al departamento de ventas

Leccin 11: Objetos distribuidos e invocacin remota

Un sistema Distribuido sofisticado debe proporcionar los mecanismos necesarios para permitir la comunicacin entre objetos distribuidos. En este tem se presentan dos metodologas ampliamente usadas: RPC y Java RMI.

1. LINUX/UNIX RPC87 Las Llamadas a Procedimientos Remotos (RPC / Remote Procedure Call) constituyen una infraestructura del modelo cliente-servidor que incrementan lo siguiente: Interoperabilidad (capacidad de dos o ms sistemas o componentes software para intercambiar informacin y utilizar la informacin que has sido intercambiada). Portabilidad (facilidad con la que un sistema o componente Software puede transferirse de un entorno Hardware o Software a otro).

87

http://www.chuidiang.com/cLINUX/rpc/rpc.html

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Flexibilidad (facilidad con la que un sistema o componente Software puede modificarse de modo que pueda utilizarse en otras aplicaciones o entornos para los que fue expresamente diseado (de una aplicacin, permitiendo que sta se distribuya sobre mltiples plataformas heterogneas).

La utilizacin de RPC reduce la complejidad del desarrollo de aplicaciones que comprenden mltiples sistemas operativos y protocolos de red mediante el aislamiento del desarrollador de los detalles de la plataforma subyacente (cuando se utiliza RPC, las invocaciones a funciones son las interfaces del programador).

Operacin RPC Para acceder a la porcin de cdigo del servidor remoto de una aplicacin, las RPC o invocaciones especiales a funciones, son insertadas dentro de la porcin de cdigo del cliente (Figura 47).

Figura 47. Operacin RPC

Fuente: http://www.infor.uva.es/~fdiaz/sd/doc/SD_TE01_20060227.pdf

Cuando se compila la aplicacin, el compilador genera un programa stub local para el lado cliente y un stub remoto para la parte servidora de la aplicacin. Son a estos stubs a los que se les invoca cuando la aplicacin requiere una funcin remota y, habitualmente, soportan llamadas sncronas entre el cliente y el servidor (anlogas a una invocacin en modo local).

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Mediante el uso de RPC, se reduce la complejidad asociada al desarrollo de un procesamiento distribuido, gracias a dotar a una invocacin remota de la misma semntica que una invocacin en modo local. Sin embargo, RPC incrementa el grado de participacin del desarrollador de la aplicacin, como consecuencia de la naturaleza maestro-esclavo del Mecanismo. Adems, RPC incrementa la flexibilidad de una arquitectura, permitiendo a un cliente emplear una invocacin a una funcin para acceder a un servidor en un sistema remoto. RPC permite que el componente remoto sea accesible sin necesidad de conocer su direccin de red o cualquier otra informacin de bajo nivel. La mayora de las implementaciones de RPC utilizan un protocolo solicitudrespuesta sncrono (esquema call/wait) que implica el bloqueo del cliente hasta que el servidor satisface su solicitud.

Ejemplo En plataformas LINUX-UNIX es posible tener en ejecucin un programa en C con varias funciones que pueden ser llamadas desde otros programas. Estos otros programas pueden estar ejecutndose en diversos computadores conectados en red. Se supone, por ejemplo, que se tiene un computador muy potente en clculo matemtico y otro con un buen display para grficos. Se desea hacer un programa con mucho clculo y con unos grficos "sofisticados". Ninguno de los dos computadores cumple con ambos requisitos. Una solucin, utilizando RPC (Llamada a procedimientos remotos), consiste en programar las funciones matemticas en el computador de clculo y publicar dichas funciones. Estas funciones podrn ser llamadas por el computador grfico, pero se ejecutarn en el computador de clculo. Por otro lado, se realizan los grficos en el computador grfico y cuando se requiera algn clculo, se invocan las funciones del computador de clculo. Al programa con las funciones se le llama "servidor". Al programa que llama a esas funciones se le llama "cliente". Normalmente el servidor est siempre en ejecucin y a la espera de que algn cliente llame a alguna de sus funciones. Cuando el cliente llama a una funcin del servidor, la funcin se ejecuta en el servidor y el cliente detiene su ejecucin hasta que el servidor termina.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

En el cdigo del programa servidor bsicamente hay que seguir los siguientes pasos: Codificar las funciones que van a ser llamadas siguiendo un determinado mecanismo. Informar al sistema operativo (UNIX-LINUX) de un nombre, una versin y funciones que publica. Dejar en un bucle infinito esperando que alguien llame a alguna de sus funciones.

Mientras que el programa cliente debe: Establecer una conexin con el servidor. Llamar a las funciones. Cerrar la conexin con el servidor.

2. Java RMI

Java RMI (Remote Method Invocation / Invocacin de Mtodo Remoto) es el mecanismo ofrecido en Java que permite a un procedimiento (mtodo, clase, aplicacin) poder ser invocado remotamente (Figura 48). Una de las ventajas al disear un procedimiento con RMI es interoperabilidad, ya que RMI forma parte de todo JDK (Java Development Kit / Kit de Desarrollo de Java), y por lo tanto, cualquier plataforma que tenga acceso a un JDK tambin tiene acceso a estos procedimientos.
Figura 48. Operacin de Java RMI

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Por medio de RMI, un programa Java (servidor), pone uno de los objetos que maneja, accesible desde red, de forma que otros programas Java en red (clientes) pueden invocar mtodos de este objeto. Cuando un cliente Java le pide al servidor un objeto e invoca a uno de sus mtodos, el cdigo de dicho mtodo se ejecuta en el servidor. El cdigo del cliente queda en espera de que el servidor termine de ejecutar el mtodo y devuelva un resultado.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 4: ASPECTOS DE SEGURIDAD DE UN SISTEMA DISTRIBUIDO

88

Introduccin La seguridad y proteccin en los sistemas distribuidos debe ser implementada con el objetivo de proteger la informacin contra acceso, uso no autorizado, y contra modificacin o destruccin de datos almacenados/transmitidos por un sistema computacional. El la figura 49 se resume la evolucin de las necesidades de seguridad en los sistemas de computadores desde su aparicin con los sistemas de comparticin de datos hasta el da de hoy con el advenimiento de los sistemas distribuidos abiertos de carcter global.
Figura 49. Evolucin de las Necesidades de Seguridad
1965 1975 Plataformas Computadores multiusuario de tiempo compartido 1975-1989 Sistemas distribuidos basados en redes locales 1990-1999 Internet, servicios de rea extensa 1999-Actualmente Internet + dispositivos mviles

Recursos compartidos

Memoria, archivos

Servicios locales (p. ej.: NFS), redes locales


Proteccin de servicios

e-mail, lugares web, comercio Internet


Seguridad robusta para transacciones comerciales

Objetos distribuidos, cdigo mvil


Control de acceso para objetos individuales, cdigo mvil seguro Autoridades por actividad, grupos con responsabilidades compartidas

Requisitos de seguridad

Identificacin y autenticacin de usuario

Entorno de gestin de la seguridad

Autoridad nica, base de datos de autorizacin nica (p. ej.: /etc/passwd)

Autoridad nica, delegacin, bases de datos de autorizacin replicadas (p. e).: NIS)

Muchas autoridades, sin autoridad en la red, en general

88

http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/MonogSO/SEG02.html

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Existen varios elementos que complican la aplicacin de formas o esquemas para dar seguridad dentro de un sistema. Estos elementos estn presentes en funcin del tipo de seguridad y los objetivos que se desean proteger, he aqu algunos: Comparticin de datos y objetos, as como todas las posibilidades de acceso remoto. Valor incremental de la informacin que se transmite. Desarrollo de nuevas tecnologas que facilitan la posibilidad de accesos (o ataques) en un sistema distribuido. El intruso puede llevar a cabo alguna de las siguientes violaciones: o Liberacin no autorizada de informacin (tomar ventaja). o Modificacin no autorizada de informacin (alterar informacin). o Denegar sin autorizacin en servicios. Aplicacin de redes dinmicas de los niveles de administracin de dominios. Cambios constantes de los niveles de administracin de dominios. Diferentes protocolos de comunicacin. Incremento de los alcances con ambiente de crecimiento rpido (mala planeacin).

Hay una necesidad apremiante de medidas para garantizar la privacidad, integridad y disponibilidad de recursos en los sistemas distribuidos. Los ataques contra la seguridad toman las formas de escuchas, suplantacin, modificacin y denegacin de servicio (Figura 50).
Figura 50. Amenazas a la Seguridad

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

En todos aquellos sistemas de computadores, donde existan objetivos potenciales para ataques maliciosos o con fines de diversin hay que incluir medidas de seguridad. Especialmente para sistemas que traten con transacciones financieras, confidenciales, clasificadas u otra informacin cuyo secreto e integridad sea crtica.

Leccin 12: Polticas de Seguridad, Mecanismos de Proteccin, Factores de Seguridad

La necesidad de proteger la integridad y la privacidad de la informacin, y otros recursos que pertenecen a individuos y organizaciones, conjuga ambos mundos: el fsico y el digital. En el mundo fsico, las organizaciones adoptan polticas de seguridad para poder compartir recursos dentro de unos lmites especificados. Las polticas de seguridad se hacen cumplir con la ayuda de los mecanismos de proteccin. En el mundo electrnico, la distincin entre polticas de seguridad y los mecanismos de proteccin tambin es importante: sin ella, seria difcil determinar si un sistema particular es seguro.

1. Polticas de Seguridad

Se refiere a todos las normas que son implementadas adicionalmente a los mecanismos para incrementar las posibilidades de integridad de los sistemas. Por ejemplo cambiar el password de un sistema peridicamente.

2. Mecanismos de Proteccin

Se refiere a todos los mecanismos que deben ser implementados para proporcionar seguridad en los sistemas, pueden ser operaciones y procesos que

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

permitan restringir accesos dentro de los sistemas. Por ejemplo la instalacin de un cortafuegos89 empresarial.

Las polticas de seguridad son independientes de la tecnologa empleada, as como el instalar una cerradura en una puerta no garantiza la seguridad del edificio a menos que haya una poltica de uso (por ejemplo. que la puerta est cerrada cuando no est vigilada). Los mecanismos de seguridad que se describen no garantizan, por s mismos, la seguridad de un sistema. Por ello es importante tener en cuenta que tanto las polticas como los mecanismos son fundamentales para implementar la seguridad.

3. Factores de Seguridad

Para comprender los factores involucrados en la seguridad de un sistema distribuido se usar el ejemplo representado en la figura 51.
Figura 51. Emisor, Receptor e Intruso

Fuente: KUROSE James, REDES DE COMPUTADORES, Addison Wesley, Madrid, 2004, 2 Ed.

Alicia y Roberto, que quieren comunicarse de forma segura. Qu significa esto exactamente?. Realmente, Alicia quiere que nicamente Roberto sea capaz de entender el mensaje que ella le ha enviado, incluso aunque se estn comunicando sobre un medio inseguro, en el que un intruso (Gertrudis, la intrusa) pudiera interceptarlo, leerlo o realizar conjeturas sobre qu es lo que se transmite entre Alicia y Roberto. Roberto tambin quiere estar seguro de que el mensaje que recibe de Alicia fue enviado en efecto por Alicia, y Alicia quiere eso segura de que la persona con quien est comunicndose es en realidad Roberto. Alicia y Roberto
89

Para empliar este concepto ver glosario de trminos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

tambin desean estar seguros de que el contenido de sus mensajes no es alterado durante su trnsito. Dadas estas premisas, se pueden identificar las propiedades deseadas de una comunicacin segura:

3.1 Confidencialidad

nicamente el emisor y el receptor deseado deben ser capaces de entender el contenido del mensaje transmitido. Como los oyentes ocultos pueden interceptar el mensaje, se requiere necesariamente que el mensaje sea encriptado de algn modo (disfrazados sus datos) para que el mensaje interceptado no pueda ser desencriptado (entendido) por un interceptador.

3.2 Autenticacin

Roberto, como emisor y receptor, debera ser capaz de confirmar la identidad de la otra parte involucrada en la comunicacin para asegurarse de que la otra parte es en efecto quin o lo que parece. La comunicacin cara a cara resuelve este problema fcilmente mediante el reconocimiento visual. Cuando las entidades en comunicacin intercambian mensajes sobre un medio donde no pueden ver a la otra parte, la autenticacin no es tan simple. Por qu, por ejemplo, debera usted creerse que un correo electrnico que contiene una cadena de caracteres que dice que el correo viene de un amigo proviene en realidad de tal amigo? Si alguien le llama por telfono diciendo que es de su banco, le pide su nmero de cuenta, el nmero de identificacin personal (PIN / Personal Identification Number), y los balances de cuenta para efectuar una verificacin, le dara usted esa informacin por telfono?.

3.3 Integridad del mensaje y no repudio

Incluso si el emisor y el receptor son capaces de autenticarse entre ellos, tambin querrn estar seguros de que el contenido de sus comunicaciones no es alterado durante la transmisin, ya sea maliciosamente o por accidente. Para proporcionar

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

tal integridad de mensaje se pueden utilizar extensiones de las tcnicas de suma de comprobacin.

3.4 Disponibilidad y control de acceso

La apremiante necesidad de seguridad en las redes se ha hecho dolorosamente patente en los ltimos aos a partir de numerosos ataques de denegacin de servicio (DoS / Denial-of-Service)90, que han conseguido que una red, un host u otra pieza de la infraestructura de la red dejaran de ser utilizables por sus legtimos usuarios; quiz los ms notorios de estos ataques DoS han sido los perpretados contra sitios web de empresas de alto nivel. Por lo tanto, un requisito de las comunicaciones seguras debe ser en primer lugar que la comunicacin pueda darse (que los chicos malos no puedan impedir que la infraestructura sea utilizada por sus legtimos usuarios). El hecho de que determinados usuarios estn legitimados y otros no, conduce naturalmente hacia la nocin de control de acceso (asegurar que las entidades que deseen acceder a los recursos puedan hacerlo slo si poseen los derechos de acceso apropiados y ejecutan sus accesos de un modo bien definido).

4. Amenazas y ataques a la seguridad

Todo sistema de informacin y en especial un sistema distribuido, debido a la heterogeneidad de sus componentes, es propenso a las amenazas y ataques a su seguridad. Algunos ataques son obvios; por ejemplo, en la mayora de los tipos de redes locales es fcil construir y lanzar un programa sobre un computador conectado para que obtenga copias de los mensajes transmitidos entre otros computadores. Otras amenazas son ms sutiles; si los clientes fallan en autenticar los servidores, un programa podra situarse a s mismo en lugar del autntico servidor de archivos y as obtener copias de informacin confidencial que los clientes, inconscientemente, envan para su almacenamiento.

90

Para empliar este concepto ver glosario de trminos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La principal meta de la seguridad es restringir el acceso a la informacin y los recursos de modo que slo tengan acceso aquellos principales autorizados. Las amenazas de seguridad caen en tres amplias clases:

Fuga. La adquisicin de informacin por receptores no autorizados. Alteracin. La modificacin no autorizada de informacin. Vandalismo. Interferencia con el modo de operacin adecuado de un sistema, sin ganancia alguna para el perpetrador.

Los ataques en los sistemas distribuidos (Figura 52) dependen de la obtencin de acceso a los canales de comunicacin existentes o del establecimiento de canales nuevos que se suplantan a las conexiones (se emplea el trmino canal para hacer alusin a cualquier mecanismo de comunicacin entre procesos).
Figura 52. Ataques a la seguridad

Fuente: Autor

Los mtodos de ataque (Figura 52) pueden clasificarse ms an en funcin del modo en que se abusa del canal: Interrupcin: destruye la informacin o la inutiliza. Ataca la disponibilidad. Interceptacin: Obtiene acceso a informacin. Ataca la confidencialidad. Modificacin: Modifica la informacin. Ataca la integridad. Suplantacin: Falsifica la informacin. Ataca la autenticidad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La mayora de los ataques a los sistemas distribuidos parten de la exposicin de sus canales de comunicacin y sus interfaces. Para muchos sistemas, stos son los nicos ataques que se deben considerar y que no se derivan de los errores humanos. Los mecanismos de seguridad no pueden proteger contra una clave de acceso mal elegida o mal custodiada.

Leccin 13: Criptografa

La criptografa que etimolgicamente, procede de la raz griega kriptn (oculto), y de grafa (escritura) significa "escritura oculta" y se puede definir como la disciplina que estudia los principios, mtodos y medios de ocultar la informacin contenida en un mensaje. Es practicada por los criptgrafos. La idea fundamental en que se basa la criptografa es permitir que dos entidades, ya sean usuarios o aplicaciones, puedan enviarse mensajes por un canal que puede ser intervenido por una tercera entidad, de modo que slo los destinatarios autorizados puedan leer los mensajes (Figura 53).
Figura 53. Criptografa

Fuente: Autor

La criptografa proporciona la base de la autenticacin de mensajes as como del secreto y la integridad. Para explotarla es preciso utilizar protocolos de seguridad diseados cuidadosamente. La seleccin de algoritmos criptogrficos y la administracin de claves son puntos crticos para la efectividad, prestaciones y usabilidad de los mecanismos de seguridad. La criptografa de clave pblica facilita la distribucin de claves criptogrficas pero sus prestaciones son

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

inadecuadas para la encriptacin de datos masivos. La criptografa de clave secreta es ms adecuada para tareas de encriptacin masiva. Como tcnica, la criptografa provee un incremento en la proteccin de los sistemas en eventos o lugares donde se maneja informacin no autorizada y que puede estar disponible para los impulsos. Permite que una pieza de informacin sea convertida a una forma encriptada antes de que sea almacenada o transmitida por un canal de comunicacin.

1. Modelo de criptografa La Encriptacin es una operacin primitiva (a bajo nivel) empleada por la criptografa y que se efecta sobre datos para convertirlos a una representacin que no tenga significado para cualquier otra entidad, nicamente para el receptor designado (Figura 54). La encriptacin est asociada con la transformacin de un mensaje inteligible (M: Texto Plano) a una forma no inteligible (C: Texto Cifrado) con la ayuda de una clave secreta (KE) antes de que sea colocada en un medio inseguro.
Figura 54. Modelo de Criptografa

Fuente: KUROSE James, REDES DE COMPUTADORES, Addison Wesley, Madrid, 2004, 2 Ed.

La encriptacin se define como una funcin matemtica (algoritmo) de la siguiente forma: C = E (M,KE) = EKE (M) donde E es el Algoritmo de Encriptacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Un algoritmo de desencriptacin (D) debe tener la propiedad de que el dato original (M) pueda ser recuperado de su forma encriptada si se conoce el valor de su llave (KD) . M = D (C,KD) = DKD (C) donde D= Funcin decriptadora. La proteccin de un sistema de encriptacin es medida por el grado de dificultad que presente para encontrar la clave utilizada. Entre ms complejo sea el mtodo de encriptado utilizado, le es ms difcil a otras personas descifrar el mensaje.

2. Tipos de Criptografa A continuacin se relacionan los nombres de los algoritmos de encriptado mas famosos y a manera de ejemplo se explicaran dos, PGP91 y RSA92. DES (Data Encryption Standard / Estandar de Encripcin de Datos) Triple-DES (3des) IDEA (International Data Encryption Algorithm / Algoritmo de Encripcin de Datos Internacional) RC-2 Y RC-4 Skipjack93 AES (Advanced Encryption Standard / Estandar de Encripcin Avazado) Algoritmo RSA (Rivest-Shamir-Adleman) Algoritmo ElGamal (De origen Israel) PGP 3. Software de Encriptamiento PGP PGP (Pretty Good Privacy / Privacidad Bastante Buena), en su versin 2.6.3i (internacional) se convirti a mediados de la dcada de los 90 en un estndar de hecho. La principal caracterstica de ste software es su amplia utilizacin para cifrar todo tipo de datos en entornos WINDOWS, UNIX y LINUX. Su orientacin principal es el cifrado de los datos y la firma digital en correo electrnico. Los algoritmos bsicos que usa PGP son:

91 92

Privacidad Bastante Buena (Pretty Good Privacy) Algoritmo Rivest-Shamir-Adleman 93 Algoritmo de cifrado-descifrado. de llave simtrica (se usa la misma llave para encriptar-descencriptar)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

IDEA94 para cifrar con sistema de clave secreta. RSA para intercambio de claves y firma digital. MD595 para obtener la funcin hash de la firma digital y para recuperar la clave privada asimtrica y el cifrado local.

El mtodo de cifrado utilizado por PGP se muestra a continuacin (Figura 55).


Figura 55. Algoritmo PGP

Fuente: Autor

En origen, el mensaje o archivo que se desea proteger va pasando por diferentes bloques que lo van transformando:
94

PGP solicita una frase de paso (contrasea): sta debe ser lo suficientemente larga como para evitar ataques por combinaciones. Se aplica el algoritmo de resumen MD5 a esa contrasea, generando as una clave de 128 bits (clave local). Con esa clave, PGP cifra el documento con el algoritmo IDEA y le pone como extensin (.pgp). Como una opcin, permite luego hacer un borrado fsico del archivo en claro.

En criptografa el Algoritmo Internacional de Encriptamiento de Datos (IDEA) es un cifrado de bloque diseado por Xuejia Lai y James L. Massey de ETH-Zurich y descrito por primera vez en 1991. 95 En criptografa, MD5 (acrnimo de Message-Digest Algorithm 5 / Algoritmo de Resumen del Mensaje 5) es un algoritmo de reduccin criptogrfico de 128 bits ampliamente usado. El cdigo MD5 fue diseado por Ronald Rivest en 1991. Durante el ao 2004 fueron divulgados ciertos defectos de seguridad, lo que har que en un futuro cercano se cambie de este sistema a otro ms seguro.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

En la recepcin se realiza el proceso inverso, con lo que se obtiene el mensaje original, asegurando los requerimientos buscados.

El acceso al texto en claro slo es posible si se conoce una clave o contrasea que es la frase de paso usada al cifrar. Es importante tener en cuenta que si despus de cifrar el archivo, se borra fsicamente el texto en claro (operacin que realiza una grabacin de unos y ceros aleatorios en la zona de almacenamiento del disco) entonces ser imposible recuperarlo si olvida la contrasea.

4. Algoritmo Rivest-Shamir-Adleman (RSA) En febrero de 1978 Ron Rivest, Adi Shamir y Leonard Adleman proponen un algoritmo de cifrado de clave pblica: RSA. El algoritmo RSA se fundamenta en el hecho de que la factorizacin de nmeros primos es un problema de resolucin computacionalmente difcil. El algoritmo RSA est descrito en infinidad de sitios96 y es extremadamente simple: Primero es necesario calcular las claves: Encontrar dos nmeros primos grandes (de 100 cifras o ms), p y q. Los valores p y q no se hacen pblicos.

Definir n (conocido como mdulo) como: n = pq Definir z como: z = (p-1)(q-1) Encontrar un nmero primo aleatorio e menor que el mdulo y tal que e y z sean primos entre s. Determinar un valor d tal que se cumpla que (e d - 1) es divisible entre z (d existe y es nico).

96

http://es.wikipedia.org/wiki/RSA, http://daniellerch.com/sources/doc/algoritmo_rsa.html

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El cifrado del mensaje M se obtendr segn la siguiente operacin: C = M e (mod n) Y el descifrado mediante la siguiente: M = C d (mod n) Por tanto, la clave pblica estar constituida por el par (n,e), mientras que la clave privada la constituirn (n,d). Ejemplo:

Leccin 14: Seguridad con Cortafuegos

Un cortafuegos es un elemento de hardware o software utilizado en una red de computadores para prevenir algunos tipos de comunicaciones prohibidos segn las polticas de red que se hayan definido en funcin de las necesidades de la organizacin responsable de la red. Su modo de funcionar es definido por la recomendacin RFC-297997, la cual define las caractersticas de comportamiento y requerimientos de interoperabilidad98 La idea principal de un cortafuegos (Figura 56) es crear un punto de control de la entrada y salida de trfico de una red. Un cortafuegos correctamente configurado es un sistema adecuado para aadir proteccin a una instalacin informtica, pero en ningn caso debe considerarse como suficiente. La Seguridad informtica abarca ms mbitos y ms niveles de trabajo y proteccin.

97 98

http://www.ietf.org/rfc/rfc2979.txt http://es.wikipedia.org/wiki/Cortafuegos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 56. Cortafuegos (Firewall)

Fuenter: Autor

Los cortafuegos son un tipo de seguridad muy efectiva en redes e intentan prevenir los ataques de usuarios externos a la red interna. Tienen mltiples propsitos: Restringir la entrada a usuarios a puntos cuidadosamente controlados. Restringir los permisos de los usuarios a puntos cuidadosamente controlados. Prevenir los ataques.

Un cortafuegos es a menudo instalado en el punto donde la red interna se conecta con Internet. Todo trfico externo de Internet hacia la red interna pasa a travs del cortafuegos, as puede determinar si dicho trfico es aceptable, de acuerdo a sus polticas de seguridad. Lgicamente un cortafuegos es un separador, un analizador, un limitador. La implementacin fsica vara de acuerdo al lugar. A menudo, un Cortafuegos es un conjunto de componentes de hardware - un router, un host, una combinacin de routers, computadores y redes con software apropiado. Rara vez es un simple objeto fsico. Usualmente esta compuesto por mltiples partes y alguna de esas partes puede realizar otras tareas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La conexin de Internet tambin forma parte del cortafuegos. Un cortafuegos es vulnerable, l no protege de la gente que est dentro de la red interna. El cortafuegos trabaja mejor si se complementa con una defensa interna. Un Cortafuegos es la forma ms efectiva de conectar una red a Internet y proteger su red. Los cortafuegos tambin tienen otros usos. Por ejemplo, se pueden usar para dividir partes de un sitio que tienen distintas necesidades de seguridad.

1. Objetivos de Seguridad de un Cortafuegos Los cortafuegos son un mecanismo de seguridad pero toda implementacin de proteccin con cortafuegos debe incluir una poltica de seguridad. Los objetivos de la poltica de seguridad de un cortafuegos incluyen todos o algunos de aspectos los enumerados a continuacin: Control de servicios: para determinar qu servicios en los hosts internos son accesibles desde el exterior y para rechazar cualquier otra peticin de servicio. Tambin se controlan las peticiones de servicios al exterior y sus respuestas. Estas acciones de filtrado pueden basarse en el contenido de los paquetes IP y en las peticiones TCP y UDP que contienen. Por ejemplo, las peticiones HTTP pueden rechazarse a menos que sean dirigidas al host que albergue el servidor web oficial. Control del comportamiento: para prevenir comportamientos que infrinjan las polticas de la organizacin, sean antisociales o no tengan un propsito legtimo y, por lo tanto, sean sospechosos de formar parte de un ataque. Algunas de estas acciones de filtrado pueden ser aplicadas a nivel IP o a nivel TCP, pero otras pueden requerir la interpretacin de mensajes al ms alto nivel. Por ejemplo, filtrar un ataque de spam99 en el correo electrnico puede necesitar examinar la direccin del remitente en la cabecera del mensaje o incluso el contenido del mismo. Control de usuarios: la organizacin puede querer distinguir entre sus usuarios, permitindoles algn acceso a servicios exteriores pero inhibiendo a otros hacer lo mismo. Un ejemplo de control de usuarios, que quizs sea ms aceptable socialmente que otros, es impedir que se pueda instalar software excepto a aquellos que son miembros del equipo de administradores de sistemas, para prevenir infecciones de virus o para mantener estndares de software. Este ejemplo en concreto puede ser difcil de llevar a cabo en la prctica sin llegar a impedir el uso del Web por los usuarios normales.
99

Ver ampliacin del trmino en el glosario

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Otro ejemplo de control de usuarios es la gestin de los accesos telefnicos y de otras conexiones proporcionadas a los usuarios que se encuentran ausentes. Si el cortafuegos es tambin el host de las conexiones va mdem, puede autentificar los usuarios en el momento de conectarse y requerir el uso de un canal seguro para las comunicaciones (para prevenir la escucha, y el enmascaramiento y otros ataques en las conexiones externas). Las dos principales aproximaciones usadas para construir Cortafuegos hoy son: Filtrado de paquetes. Pasarelas de Aplicacin

2. Filtrado de Paquetes El sistema de filtrado de paquetes (Figura 57) encamina paquetes entre los host internos y los externos, pero de manera selectiva. Permite bloquear cierto tipo de paquetes de acuerdo con la poltica de seguridad de la red.
Figura 57. Cortafuegos con Filtrado de Paquetes

Autor: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

El tipo de enrutamiento usado para filtrar paquetes en un Cortafuegos es conocido como "screening router". Se puede selectivamente rutear paquetes desde o hacia su sitio: Bloquear todas las conexiones que entran desde sistemas externos, excepto las conexiones SMTP100 (solo recibir mails). Bloquear todas las conexiones (puertos) que provienen de un determinado lugar que se considera peligroso.

100

Protocolo Simple de Transferencia de Correo (Simple Mail Transfer Protocol)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Permitir servicio de Mail y FTP, pero bloqueando servicios peligrosos como TFTP101, RPC, servicios "r" (rlogin102, rsh103, etc), etc.

Para entender como se filtra un paquete, se necesita conocer la diferencia entre enrutamiento ordinario y screening router. Un enrutamiento ordinario simplemente mira la direccin destino de cada paquete y elige el mejor camino que l conoce hacia la direccin destino. La decisin sobre como atender el paquete se basa solamente en el destino del paquete. En screening router, mira el paquete ms detalladamente. Adems de determinar si el paquete puede ser ruteado o n a la direccin destino, determina si debe o n debe ser ruteado de acuerdo con la poltica de seguridad. La comunicacin entre la red interna y externa tiene una enorme responsabilidad. Realizar el enrutamiento y la decisin de rutear es la nica proteccin al sistema. Si la seguridad falla, la red interna queda expuesta. Un screening router puede permitir o denegar un servicio, pero no puede proteger operaciones individuales dentro del servicio. Casi todos los dispositivos actuales de filtro de paquetes (routers de seleccin o compuertas de filtro de paquetes) operan de la siguiente forma: El criterio de filtro de paquete debe almacenarse para los puertos del dispositivo para filtro de paquetes. El criterio de filtro de paquetes se conoce como reglas de filtro de paquetes. Cuando un paquete llega al puerto, los encabezados de los paquetes se analizan. La mayora de los filtros los campos slo en los encabezados IP, TCP o UDP. Las reglas del filtro de paquete se almacenan en un orden especfico. Cada regla se aplica al paquete en el mismo orden en que la regla del filtro de paquetes se almacen. Si una regla bloquea la transmisin o recepcin del paquete, el paquete no se acepta. Si una regla permite la transmisin o recepcin de un paquete, el paquete sigue su camino. Si un paquete no satisface ninguna regla, es bloqueado. Es decir aquello que no est expresamente permitido, se prohbe, por lo tanto, debe observar que es importante colocar las reglas en orden correcto. Un error comn al configurar las reglas del filtro de paquetes es hacerlo en desorden. Si dichas reglas se colocan en un orden equivocado, podra terminar denegando servicios vlidos, mientras que permitira los servicios que deseaba denegar.

101 102

Protocolo de Transferencia de Archivos Trivial (Trivial File Transfer Protocol) Utilidad que permite establecer una sesin de terminal remota con un host en internet. Trabaja con TCP/IP. 103 Comando que utiliza el servicio rlogin y tiene el problema de que la informacin se transmite sin cifrar.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

3. Pasarela de Aplicacin

En los ejemplos anteriores, se ha explicado que el filtrado a nivel de paquetes permite realizar un filtrado sobre las cabeceras IP y TCP/UDP, incluyendo las direcciones IP, los servicios TCP/IP y los nmeros de puerto, por ejemplo, se ha explicado que el filtrado basado en una combinacin de direcciones IP y nmeros de puerto puede permitir que los clientes internos salgan utilizando Telnet, pero impide que los clientes externos hagan Telnet hacia dentro. Pero, qu sucede si una organizacin desea proporcionar servicio de Telnet a conjunto restringido de usuarios internos (en oposicin a direcciones IP)? Y si organizacin quiere que tales usuarios privilegiados se autentiquen a s mismos antes de permitirles crear sesiones Telnet hacia el mundo exterior? Tales tareas estn ms all de las capacidades de un cortafuegos de filtrado de paquetes. En efecto, la informacin sobre la identidad de los usuarios internos no se incluye en las cabeceras IP/TCP/UDP, sino en los datos de nivel de aplicacin. Para poder conseguir una seguridad a nivel de aplicacin, los cortafuegos deben combinar el filtrado de paquetes con las pasarelas de aplicacin. Las pasarelas de aplicacin miran ms all de las cabeceras IP/TCP/UDP, y toman decisiones basadas en los datos de aplicacin.
Figura 58. Cortafuegos en combinacin con pasarela de aplicacin

Fuente: KUROSE James, REDES DE COMPUTADORES, Addison Wesley, Madrid, 2004, 2 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Una pasarela de aplicacin (Figura 58) es un servidor de aplicacin especfico a travs del cual deben pasar todos los datos de aplicacin (entrantes y salientes). Varias pasarelas de aplicacin pueden ejecutarse sobre el mismo host, pero cada pasarela es un servidor separado con sus propios procesos. Para dar algunas nociones sobre las pasarelas de aplicacin, se presenta un cortafuegos que permite slo a un conjunto restringido de usuarios hacer Telnet hacia el exterior al tiempo que impide que los clientes externos puedan hacer Telnet hacia el interior. Tal poltica puede ser ejecutada implementando una combinacin de filtrado de paquetes (en un router) y una pasarela de aplicacin Telnet, tal y como se muestra en la figura 58. El filtro del router es configurado para bloquear todas las conexiones Telnet, excepto aqullas que se originen en la direccin IP de la pasarela de aplicacin. Tal configuracin del filtro obliga a todas las conexiones salientes a pasar por la pasarela de aplicacin. Considere ahora un usuario interno que desea realizar un Telnet hacia el mundo exterior. En primer lugar, el usuario debe iniciar una sesin Telnet con la pasarela de aplicacin. Una aplicacin que se ejecuta sobre la pasarela, la cual escucha sesiones Telnet entrantes, pide al usuario una identificacin y una contrasea. Cuando el usuario proporciona esta informacin, la pasarela de aplicacin comprueba si el usuario tiene permiso para realizar Telnet hacia el exterior. Si no lo tiene, la conexin Telnet del usuario interno es finalizada por la pasarela. Si el usuario tiene permiso, entonces: (a) la pasarela solicita al usuario el nombre del host externo al que quiere conectarse. (b) establece una sesin Telnet entre la pasarela y el host externo. (c) hace de intermediario ente los datos que llegan al usuario y salen hacia al host externo. As, la pasarela de aplicacin Telnet no slo realiza la autorizacin de usuario, sino que acta al mismo tiempo como servidor y como cliente Telnet, pasando la informacin entre el usuario y el servidor Telnet remoto. Hay que destacar que el filtro permite el paso (b), porque la pasarela inicia la conexin Telnet hacia el mundo exterior. Las redes internas a menudo tienen mltiples pasarelas de aplicacin (por ejemplo, pasarelas para Telnet, HTTP, FTP, y correo electrnico). De hecho, el servidor de correo de una organizacin y la cach web son pasarelas de aplicacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Las pasarelas de aplicacin tambin presentan inconvenientes. Primero, se necesita una pasarela de aplicacin para cada aplicacin. Segundo, existe una penalizacin en las prestaciones, ya que todos los datos han de pasar por la pasarela. Esto se convierte en un problema, especialmente cuando mltiples usuarios o aplicaciones estn utilizando la misma mquina de pasarela. Finalmente, se debe realizar una cierta cantidad de trabajo de configuracin extra; a saber: El software del cliente debe saber cmo contactar con la pasarela en lugar de hacerlo con el servidor externo cuando el usuario realiza una peticin, y debe saber cmo indicarle a la pasarela de aplicacin el servidor externo al que ha de conectarse, o El usuario debe conectarse explcitamente con el servidor externo a travs de la pasarela de aplicacin. Concluimos esta seccin mencionando que los cortafuegos no son la panacea para todos los problemas de seguridad. Introducen una relacin entre el grado de comunicacin con el mundo exterior y el nivel de seguridad. Como los cortafuegos no pueden impedir la falsificacin de las direcciones IP y de los nmeros de puerto, utilizan a menudo una poltica de todo o nada (por ejemplo, prohibiendo todo el trfico UDP). Las pasarelas tambin tienen agujeros en el software, que permiten que los atacantes penetren en ellas. Finalmente, los cortafuegos son incluso menos efectivos si las comunicaciones generadas internamente pueden alcanzar el mundo exterior sin pasar a travs del cortafuegos, como en el caso de las comunicaciones inalmbricas.

Leccin 15: Servidor Proxy104

Proxy es un sistema intermediario (Figura 59) entre los hosts internos de una red y los hosts de Internet de forma tal que reciba las requisiciones de unos y se las pase a los otros, previa verificacin de accesos y privilegios. Este sistema puede correr en hosts "dual-homed" o hosts "bastion" los cuales sern llamados Servidores Proxy.
104 Hace referencia a un programa o dispositivo que realiza una accin en representacin de otro. La finalidad ms habitual es la del servidor proxy, que sirve para permitir el acceso a Internet a todos los equipos de una organizacin cuando slo se puede disponer de un nico equipo conectado, esto es, una nica direccin IP.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 59. Servidor Proxy

Fuente: KUROSE James, REDES DE COMPUTADORES, Addison Wesley, Madrid, 2004, 2 Ed.

Los sistemas Proxy son efectivos solo si se utilizan junto a mtodos de restriccin de trfico IP entre clientes y servidores reales. De este modo, un cliente no puede "saltarse" el servidor Proxy para comunicarse con un servidor real utilizando este protocolo. 1. Funcionamiento El programa cliente del usuario se comunica con el servidor Proxy enviando pedido de conexin con un servidor real. El servidor Proxy evala esta requisicin y decide si se permite la conexin. Si el servidor Proxy permite la conexin, enva al servidor real la solicitud recibida desde el cliente. De este modo, un servidor Proxy se ve como "Servidor" cuando acepta pedidos de clientes y como "cliente" cuando enva solicitudes a un servidor real. Una vez que establecida la comunicacin entre un cliente y un servidor real, el servidor Proxy acta como un retransmisor pasando comandos y respuestas de un lado a otro. Un punto importante a tener en cuenta en este tipo de conexin es que es totalmente transparente. Un usuario nunca se entera de que existe un "intermediario" en la conexin que ha establecido. La comunicacin entre el programa cliente y el servidor Proxy puede realizarse de dos formas distintas: Custom Client Software (Software adaptado por el cliente): El cliente debe saber como opera el servidor Proxy, como contactarlo, como pasar la informacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

al servidor real, etc. Se trata de un software cliente estndar que ha sido modificado para que cumpla ciertos requerimientos. Custom User Procedures (Procedimientos adaptados por el usuario): El usuario utiliza un cliente estndar para conectarse con un servidor Proxy y usa diferentes procedimientos (comandos del servidor Proxy) para pasar informacin acerca del servidor real al cual quiere conectarse. El servidor Proxy realiza la conexin con el servidor real.

2. Tipos de servidores Proxy Servidor Proxy de Aplicacin: Es un servidor que conoce sobre una aplicacin en particular y provee servicios proxy para ella. Entiende e interpreta comandos de un protocolo en particular. Con este tipo de servidores es necesario contar con uno de ellos para cada servicio. Recibe tambin el nombre de servidor Dedicado. Servidor Proxy de Circuito: Crea un circuito virtual entre el cliente y el servidor real sin interpretar el protocolo de la aplicacin. Son llamados Proxies Genricos.

3. Ventajas Permite a los usuarios acceder a los servicios de Internet ocultando totalmente la red interna. Permite un buen servicio de logs a nivel de cada aplicacin. Debido a que todo el trfico pasa a travs del servidor Proxy se puede registrar gran cantidad de informacin con fines de auditoria y seguridad. El servidor Proxy de Circuito provee soporte para un conjunto grande de protocolos.

4. Desventajas A menudo se requiere la modificacin del software cliente. Hay software que esta disponible solo para ciertas plataformas: Por ejemplo: GATEWAY es un paquete Proxy para FTP y TELNET de SUN que corre solo sobre SUN. La disponibilidad de estos tipos de paquetes a menudo no es inmediata. En el caso de servidores Proxy de Aplicacin se requiere un servidor Proxy para cada servicio. Algunos servicios no son viables para trabajar con servidores Proxy (por ejemplo, talk). El uso de servidores Proxy introduce algn retardo en las comunicaciones. Los servidores Proxy de circuitos no brindan control especfico sobre las aplicaciones.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Actividades de Autoevaluacin de la UNIDAD 2


Cmo es el proceso de establecimiento de una conexin Cliente/Servidor mediante el protocolo TCP/IP? Disee y describa un protocolo del nivel de aplicacin para ser usado entre un cajero automtico y el computador central del banco. El protocolo debe permitir que se verifique la tarjeta y la clave del usuario, que se consulte el balance de la cuenta (que se mantiene en el computador central), y que se realicen reintegros de una cuenta (es decir, dinero reintegrado al usuario). Las entidades del protocolo deben ser capaces de resolver el problema tan comn de que no haya suficiente dinero en la cuenta para cubrir el reintegro. Especifique el protocolo listando los mensajes intercambiados y la accin tomada por el cajero automtico o el computador central del banco ante la transmisin o recepcin de mensajes. Esboce la operacin de su protocolo para el caso de un reintegro sencillo sin errores, utilizando un diagrama de estados. Suponga que est descargando archivos MP3 utilizando algn sistema de comparticin de archivos entre iguales (P2P). El cuello de botella en Internet es su enlace de acceso residencial, que es un enlace 128 kpbs full-duplex. Mientras est descargando MP3, otros diez usuarios empiezan de repente a cargar archivos MP3 desde su computador. Asumiendo que su computador es muy potente y que estas cargas y descargas no suponen ningn esfuerzo (CPU, I/O a disco, etc.), harn las cargas simultneas (que tambin pasan a travs de su enlace cuello de botella) que se ralenticen sus descargas? Por qu, o por qu no? Investigar acerca de la arquitectura y el esquema de funcionamiento de Napster para compartir archivos de msica. Este sitio ofreca un esquema centralizado o distribuido y por qu?. Cul fue la razn para que este sitio de red fuera sancionado y sus servicios suspendidos? (Ayuda: http://www.napster.com/) Se dice que algunos sistemas P2P vienen con software tipo malware, spyware o adware. Qu significan estos trminos y en que se diferencian? Cmo penetran estos software en el computador? Mediante que mecanismos podemos prevenir la llegada de este tipo de software, a nuestras redes o equipos? Seleccione dos (2) de los siguientes sistemas distribuidos con arquitectura P2P. EMULE, GNUTELLA, KAZAA, FREENET, ARES GALAXY Haga un cuadro comparativo e indique como es el funcionamiento de los sistemas, qu componentes se instalan, tamao, reas del disco que acceden, protocolo utilizado y tipo de puertos que usan, cmo opera la aplicacin distribuida para recuperar informacin, que sistemas requieren servidor central y cuales no?. Que son los sistemas P2M, cual es su filosofa de trabajo, como es su arquitectura y funcionamiento. Indique el URL de sistemas P2M en uso actualmente tanto en ingls como en espaol. El sistema telefona entre pares por Internet llamado SKYPE bajo que modelo de red P2P puede catalogarse de acuerdo con el grado de centralizacin. Justifique su respuesta.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Practica: Disear un monitor API basado en WINDOWS, para controlar el proceso de los equipos en una sala de cuidados intensivos. Establezca un paralelo entre las siguientes herramientas middleware: SMARTSOCKETS, RENDEZVOUS, MAGICBUS. Uno de los principales problemas que tiene que tratar cualquier middleware que comunique computadores de distinto tipo es la transparencia del formato de representacin interno de los datos en cada componente de la red. Estudiar las ventajas e incovenientes de cada una de estas tres posibles alternativas en distintas situaciones de sistemas distribuidos: a. Convertir todos los datos al formato interno de uno de los componentes de la red. b. Convertir todos los datos a un formato intermedio de intercambio. c. No realizar ninguna conversin en el middleware, y dejar que cada aplicacin realice las conversiones que considere oportunas. Un determinado sistema distribuido requiere que cada servidor autentifique la conexin de sus clientes mediante la introduccin de un identificador de usuario y una contrasea. Supuesto que posee un middleware genrico, disear sobre l un servicio que permita a las aplicaciones clientes realizar una validacin nica de usuario y contrasea, independientemente del nmero de servicios que sea necesario utilizar. Enumere los tres principales componentes software que pueden fallar cuando un proceso cliente invoca un mtodo en un objeto servidor, proporcionando un ejemplo del fallo de cada clase. Sugiera cmo pueden construirse los componentes para que toleren sus fallos mutuamente. Practica: Confeccionar dos programas, que se ejecutarn en dos mquinas LINUX, de tal manera que uno reciba secuencias de caracteres y devuelva la misma secuencia al programa que las envi. Por cada cadena deber imprimir en la consola local, la fecha, hora y longitud de la cadena recibida. A su vez el segundo programa deber enviar secuencias de caracteres, y recibir las mismas de vuelta (echo), dichas respuestas se debern imprimir en la consola local. Los datos se tomarn en forma interactiva desde la consola local. El host A est enviando un archivo enorme al host B sobre una conexin TCP. Sobre esta conexin nunca se pierde ningn paquete ni expiran los temporizadores. La tasa de transmisin del enlace que conecta el host A a Internet es de R bps. Suponga que el proceso en el host A es capaz de enviar datos por su socket TCP a una tasa de S bps, con S = 10 R. Suponga adems que el almacn de recepcin de TCP es lo suficientemente grande como para almacenar el archivo entero, y que el almacn de envo slo puede albergar un uno por ciento del archivo. Qu podra impedir que el proceso en el host A continuara pasando datos a su socket TCP a la tasa 5? El control de flujo TCP, el control de congestin TCP, o algo ms? Detalle la explicacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Busque los nmeros de puertos bien conocidos a travs de la pgina web http://www.iana.org/assignments/port-numbers. Cul es el nmero de puerto asignado a cada uno de estos servicios: (a) FTP, (b) telnet, (c) SMTP, y (d) World Wide Web HTTP? Estos servicios estn disponibles utilizando TCP, UDP, o ambos? Qu servicios estn asociados a los puertos 13 y 17 respectivamente? En lugar de utilizar el esquema de Internet que usa el nmero de puerto del protocolo como parte de la direccin para la entrega de datos a un proceso en una determinada mquina, considere un esquema alternativo donde el proceso se localiza utilizando un identificador de proceso nico (PID), de forma que el sistema operativo UNIX se encarga de asignar dicho identificador a cada proceso activo. Obsrvese que el PID se asigna de forma dinmica a cada proceso cuando se crea, de forma que no es posible conocer a priori el identificador del proceso. Adems, el rango de valores para los PID vara de un sistema a otro. Cules son los problemas, si existen, de este esquema de direcciones? Investigue acerca de las polticas y mecanismos de seguridad de dos empresas de su eleccin. Describa algunas formas en las que es vulnerable el correo electrnico a la indiscrecin, suplantacin, modificacin, repeticin y denegacin del servicio. Sugiera mtodos por los que se pudiera proteger el correo electrnico contra cada una de stas formas de ataque. Traduzca el documento RFC-2979 el cual define las caractersticas de comportamiento y requerimientos de interoperabilidad para los cortafuegos de Internet. Plantea dichos requerimientos como un paso inicial necesario para hacer consistente el comportamiento de los cortafuegos en distintas plataformas, de acuerdo con las prcticas aceptadas del protocolo IP. (Ayuda: http://www.ietf.org/rfc/rfc2979.txt) Utilice el algotimo RSA para el cifrado y descifrado de la palabra "SECRETO" (empleando cdigo ASCII), tome valores pequeos de los parmetros para simplificar los clculos: p=3, q=11 y d=7. Cmo podra enviarse un correo electrnico a una lista de receptores utilizando PGP o un esquema similar? Que es un Proxy cach y que ventajas representa su instalacin en una empresa donde los empleados utilizan Internet frecuentemente. Elabore un cuadro de herramientas Proxy-Cache para plataformas LINUX y WINDOWS 2003 SERVER. Supngase que los nodos A, B, y C pueden atacar a la misma LAN de difusin (a travs de sus adaptadores). Si A enva miles de datagramas IP a B encapsulando con cada marco dirigido a la LAN la direccin de B, procesar estos marcos el adaptador de C? Si lo hace, pasar el adaptador de C los datagramas IP en estos marcos a C (es decir, el nodo padre del adaptador)? Cmo cambiaran sus respuestas si A enviara marcos con la direccin de difusin de la LAN?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

UNIDAD 3
Nombre de la Unidad Introduccin

APLICACIONES DISTRIBUIDAS
Esta unidad se dedica a presentar un selecto grupo de aplicaciones distribuidas, analizando en primer lugar los sistemas operativos distribuidos y en especial el sistema CORBA, detallando sus elementos intrnsecos y la importancia de su aplicacin en las organizaciones para tomar ventaja de los ambientes distribuidos. El siguiente captulo se enfoca en el anlisis de los sistemas de archivos distribuidos y su amplia utilizacin en entornos informticos heterogneos. Se estudia en particular el sistema NFS (Network File System) de Sun gracias a su flexibilidad y amplia acogida. Debido a las inmensas perspectivas futuras que tienen los Servicios Web, se dedica el tercer capitulo para su estudio. Se presentan en detalle, aspectos como el uso de tecnologas como XML, SOAP, WSDL, UDDI, WSFL y la web semntica. La unidad finaliza con un capitulo dedicado al conocimiento en profundidad del sistema de nombres de dominio (DNS) y de los sistemas de gestin distribuida, tan necesarios para tener un control centralizado de cada unos de los componentes de un sistema distribuido. Las diversas aplicaciones de los sistemas distribuidos estn revolucionando el uso que se hace de los elementos informticos y a su vez estn marcando la pauta para cada una de las tecnologas emergentes, en especial las relacionadas con las aplicaciones multimedia, los sistemas de comunicaciones mviles, los servicios de bsqueda en Internet, y la computacin distribuida, entre otros. Que el estudiante conozca los aspectos intrnsecos de los principales tipos de aplicaciones distribuidas a fin de que puedan servirle de base para el planteamiento de nuevas aplicaciones.

Justificacin

Intencionalidades Formativas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Que el estudiante exprese en forma verbal los requerimientos para la conformacin de grupos de trabajo, los roles, y las diferentes etapas que se requieren para la implementacin de un sistema distribuido, teniendo en cuenta la informacin consultada al respecto y su conocimiento de las arquitecturas. Que el estudiante determine y sustente la aplicacin de los sistemas distribuidos segn su arquitectura, tendencias y perspectivas, usando estrategias que le faciliten el acceso a la informacin, obtencin de fuentes bibliogrficas y el fomento del espritu investigativo. Cap. 1. Sistemas Operativos Distribudos - CORBA Cap. 2. Sistemas de Archivos Distribuidos Cap. 3. Servicios WEB Cap. 4. Otras Aplicaciones Distribuidas

Denominacin de captulos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 1: SISTEMAS OPERATIVOS DISTRIBUIDOS - CORBA

Introduccin

Al extender el concepto de administracin de recursos e interfaces con el usuario, hacia computadores de memoria compartida se forma un sistema Operativo Distribuido, el cual consiste en varios computadores autnomos conectados por una red de comunicaciones. Un sistema operativo distribuido se ejecuta sobre un sistema distribuido haciendo creer a los usuarios que se trata de un sistema centralizado. Teniendo en cuenta el creciente auge del sistema CORBA como base de los Sistemas Operativos Distribuidos, se analizar en el presente captulo.

Leccin 1: Fundamentos de CORBA

Se define a CORBA105 como una especificacin de Sistema Operativo Distribuido y representa la sigla Common Object Request Broker Architecture (Arquitectura de Mediador de Peticiones a Objetos Comunes). Es un estndar que establece una plataforma de desarrollo de sistemas distribuidos facilitando la invocacin de mtodos remotos bajo un paradigma orientado a objetos. El desarrollo de CORBA est controlado por el Grupo de Administracin de Objetos (OMG / Object Management Group)106 que define las APIs, el protocolo de comunicaciones y los mecanismos necesarios para permitir la interoperabilidad entre diferentes aplicaciones escritas en diversos lenguajes y ejecutadas en mltiples plataformas, lo que es fundamental en computacin distribuida. Debido al carcter abierto de CORBA, un objeto creado en UNIX puede ser llamado por programas ejecutndose en plataformas MAC, WINDOWS, LINUX, etc.

105 106

http://www.ietf.org/rfc/rfc2714.txt http://www.omg.org

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

1. Por que usar CORBA

La principal razn por la cual CORBA es importante, es que la mayora de los negocios de hoy viven en un mundo conectado por redes de computadores y en el cual los usuarios necesitan compartir informacin. Esta informacin puede venir de aplicaciones stand-alone (monousuario) de mltiples plataformas heterogneas de hardware y software, y solo unas pocas de estas aplicaciones estn diseadas para interoperar con otras aplicaciones en sus propias plataformas. Y si lo anterior ocurre, nicamente pueden interoperar con muy pocas aplicaciones. Integrar aplicaciones y sistemas aislados no es fcil y se requieren convertidores entre formatos de datos y protocolos de comunicacin. Esto requiere una solucin personalizada que consume tiempo y es costosa debido al nmero de diferentes aplicaciones que necesitan ser conectadas. Es imposible reusar componentes de software que han sido escritos para plataformas incompatibles. Adems los componentes no interoperan eficientemente con soluciones de integracin propietarias dado que las aplicaciones no fueron diseadas teniendo en cuenta la interoperatividad. Una pobre integracin lleva a una ineficiencia organizacional que se manifiesta en datos redundantes y mltiples pasos de conversin de los mismos. Estos procesos son costosos, consumen tiempo y son propensos al error. Desde la perspectiva de los usuarios, la pobre integracin resulta en la constante necesidad de aprender de aplicaciones dispares ya que sus propias habilidades no pueden ser transferidas de un sistema a otro. Por ejemplo, los administradores para tomar sus decisiones, necesitan ser capaces de reunir datos a partir de varias fuentes sobre la red (grficos del dpto. de mercadeo, hojas de clculo del departamento de finanzas, datos de contabilidad, etc), incluyendo tanto datos actuales como histricos. O como ocurre en las grandes compaas, las cuales a menudo tienen sistemas que han estado evolucionando por varias dcadas incluyendo mainframes, PCs, LANs, WANs107, y mltiples sistemas de administracin de bases de datos. Estos sistemas ejecutan un conjunto variado de aplicaciones en diversos sistemas operativos (UNIX, NOVELL, LINUX, WINDOWS, MAC etc). Los cambios frecuentes en el entorno de software debido a las nuevas necesidades de los negocios, nuevas tecnologas y cambios organizacionales pueden ser realizados ms eficientemente en un entorno integrado.

107

Ver terminos ampliados en el glosario

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

2. Perspectiva tecnolgica

Tcnicamente se define a CORBA como una especificacin middleware para una librera de Software el Mediador de Peticiones a Objetos (ORB / Object Request Broker / ORB), con interfaces de objetos estandarizadas que permiten a los objetos software hablar unos con otros a travs de una red de una manera bien definida. Adems CORBA automticamente aplica un amplio rango de tiles servicios para comunicaciones y lo ms atractivo es que todo esto lo hace ampliamente transparente al programador de aplicaciones. Una vez se inicializa el ORB, todos los objetos CORBA pueden ser invocados como objetos de software normales. El trmino genrico para objetos como CORBA es middleware (software que reside entre una aplicacin y los trabajos inherentes del sistema anfitrin (host) de la aplicacin). El middleware asla las aplicaciones de los detalles y complejidades de bajo nivel del software de manera que el desarrollador de la aplicacin slo tiene que tratar con una simple API. El middleware maneja otros detalles tales como mediar la comunicacin para objetos remotos. En lugar de codificar para sistemas operativos o interfaces de bajo nivel, el desarrollador de aplicaciones puede usar el middleware para trabajar en un alto nivel con la aplicacin.

Leccin 2: Caractersticas de CORBA

CORBA es un middleware de comunicaciones ya que asla la aplicacin de los detalles del kernel de comunicaciones y desde la perspectiva tcnica su arquitectura presenta las siguientes caractersticas de diseo:

1. Transparencia CORBA oculta, al programador de aplicaciones, muchas de las dificultades inherentes de la computacin de objetos distribuidos. Todas las invocaciones de mtodos en objetos remotos son manejadas transparentemente por CORBA. Para el programador de aplicaciones todas las llamadas a objetos sern invocaciones locales, y no necesita saber donde estn localizados los objetos en la red.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Adems, CORBA automticamente suministra un nmero de tiles servicios para comunicaciones de red, tales como procesamiento de transacciones o nombrado (naming). La mayora de estos servicios pueden ser comprados como paquetes de software aadidos (add-on) y pueden ser instalados dentro del ORB para aadir la funcionalidad requerida a CORBA. El hecho de que CORBA sea ampliamente transparente en el nivel de Aplicacin, simplifica la programacin de aplicaciones en sistemas distribuidos y, por lo tanto, puede reducir los costos de desarrollo de aplicaciones. Igualmente, los programadores de aplicaciones no requieren ser especialistas en CORBA para usarlo.

2. Independencia de Plataforma CORBA tiene su propio lenguaje para describir interfaces de objetos, llamado Lenguaje de Definicin de Interfaces (IDL / Interface Definition Language) el cual puede ser compilado en una variedad de lenguajes de programacin y plataformas. De esta manera, las interfaces CORBA son independientes del lenguaje de programacin usado para implementar los objetos cliente y servidor. Por ejemplo, es posible tener interfaces CORBA para un navegador (browser) basado en Java del lado cliente, una aplicacin PC basadas en C++, y una aplicacin LINUX basada en C del lado servidor. Todos estos objetos software pueden ser conectados a travs de este ambiente heterogneo con CORBA debido a que todas las interfaces de objetos tienen una representacin IDL. CORBA tambin provee sus propios protocolos de comunicacin, los cuales se ejecutan en la cima de una variedad de protocolos de red convencionales (Por ejemplo: TCP/IP)

3. Portabilidad CORBA es una solucin apropiada para evitar los costos de desarrollo innecesarios ya que muchos objetos software pueden ser reusados en varias partes del sistema. Esto es debido a que CORBA provee los mecanismos para acceder todos los objetos a travs de las fronteras de plataformas y lenguajes de programacin, lo cual significa que el software no necesita ser llevado a diferentes lenguajes de programacin o plataformas.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

4. Integracin CORBA permite la integracin de componentes de software de varias fuentes. Por ejemplo, un cdigo Java en un cliente web puede usar informacin de una base de datos servidor en un entorno LINUX. La mayora de las grandes empresas tienen un gran nmero de sistemas heredados con informacin crtica del negocio, los cuales no pueden ser llevados a modernos sistemas debido a incompatibilidades de formatos de datos y de protocolos de comunicacin. En la prctica, la solucin CORBA a este problema es su mayor atractivo, y muchas compaas desarrollan envolturas (wrappers) CORBA para proveer una interfaz IDL a sus sistemas heredados.

5. Interoperatividad La idea central detrs de CORBA es que objetos en ejecucin, en cumplimiento con productos CORBA de diferentes vendedores es posible, debido a que CORBA especifica sus propios protocolos de comunicacin y lenguajes de definicin de interfaces estandarizados. Por lo tanto todos los productos que cumplan con el estndar CORBA deben ser capaces de interoperar.

6. Localizacin Transparente CORBA hoy requiere ser capaz de soportar aplicaciones mviles, por ejemplo en entornos inalmbricos con dispositivos mviles donde a menudo los servidores cambian su ubicacin. Estos objetos son comnmente llamados nmadas y los servicios de nombrado CORBA as como su mecanismo de invocacin transparente a la localizacin, ofrecen los medios para ubicarlos.

7. Escalabilidad CORBA fue ideado para soportar entornos con un gran nmero de objetos y usuarios potenciales. Por lo tanto la arquitectura CORBA no coloca restricciones al crecimiento tanto en el nmero de objetos como de usuarios en el sistema. De igual manera CORBA facilita la migracin de plataformas pequeas centralizadas a grandes entornos distribuidos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

En un sentido general CORBA "envuelve" el cdigo escrito en otro lenguaje en un paquete que contiene informacin adicional sobre las capacidades del cdigo que contiene, y sobre cmo llamar a sus mtodos. Los objetos que resultan pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red. La figura 60 muestra como el cdigo generado es usado dentro de la infraestructura CORBA:
Figura 60. Cdigo generado en CORBA

Fuente: http://en.wikipedia.org/wiki/CORBA

Por lo general el lado del servidor tiene un adaptador de cdigo portable que redirige todas las llamadas, o bien se a los servidores locales (para balancear la carga) o a servidores remotos.

Arquitectura de Gestin de Objetos de OMG En 1989, el Grupo de Administracin de Objetos (OMG / Object Management Group), el cual es actualmente el consorcio de software ms grande del mundo (con mas de 800 miembros), fue creado para atender los problemas de desarrollo de aplicaciones distribuidas portables para sistemas heterogneos. La filosofa era desarrollar un producto con abstracciones de alto nivel para ocultar detalles de bajo nivel. Es as como se produjo la primera especificacin denominada Arquitectura de Administracin de Objetos (OMA / Object Management Architecture) y su ncleo la especificacin CORBA.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

OMA utiliza el Modelo de Referencia para proveer las categoras de interfaces, que son las agrupaciones generales para las categoras de objetos. La figura 61 muestra todas las categoras de interfaces que son conceptualmente enlazadas por un Mediador de Peticiones a Objetos (ORB / Object Request Broker). Generalmente un ORB habilita la comunicacin entre Clientes y Objetos, activando transparentemente aquellos objetos que no estn en ejecucin al momento de recibir las solicitudes. Adems, el ORB suministra una interfaz que puede ser usada directamente por los clientes as como por los objetos.

Figura 61. Categoras de Interfaz OMA.

Fuente: Autor

Leccin 3: Los servicios y componentes de CORBA

1. Servicios de CORBA Los servicios de objetos son construcciones de bloques de software orientados horizontalmente que son fundamentales para el desarrollo de aplicaciones distribuidas CORBA y dan las bases para la interoperatividad de aplicaciones. Adems son independientes del dominio y proveen la funcionalidad para las aplicaciones CORBA de tal manera que los desarrolladores de aplicaciones pueden llamar funciones de servicios de objetos sin necesidad de escribir y

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

llamar sus propias funciones de servicios de objetos privadas. La Especificacin de Servicios de Objetos Comunes CORBA, desarrollada por OMG define mltiples servicios CORBA, de los cuales los ms representativos sern descritos a continuacin: Servicio de Nombres: Provee la habilidad de enlazar un Nombre a un Objeto dentro de un contexto de nombrado (como un directorio Telefnico). El contexto de nombrado, usado para localizar un objeto en la red, es un objeto que contiene un conjunto de enlaces a nombres donde cada nombre es nico. Servicio de Eventos: Suministra interacciones asncronas entre objetos annimos. Soporta eventos asncronos y no requiere un servidor centralizado. Los proveedores pueden generar eventos sin conocer la identidad de los consumidores y los consumidores pueden recibir eventos desconociendo las identidades de los proveedores. Servicio de Ciclo de Vida: Trata con la vida, muerte y reubicacin de objetos. Define las operaciones para copiar, mover y remover grafos de objetos relacionados. Servicio de Transaccin de Objetos: Define las interfaces que permiten que mltiples objetos distribuidos cooperen con el fin de proveer atomicidad108. Estas interfaces habilitan a los objetos a realizar commit (acometer) todas las transacciones o rollback (reversar) las mismas en presencia de alguna falla. Este servicio soporta mltiples modelos de transaccin, as como la interoperabilidad entre diferentes modelos de programacin y diferentes sistemas, incluyendo la capacidad de tener un servicio de transaccin interoperando con otro en diferentes ORB. Servicio de Control de Concurrencia: Habilita a mltiples clientes para acceder de manera coordinada a los recursos compartidos. El uso concurrente de los recursos es regulado con semforos y cada semforo se asocia con un recurso y un cliente particular. Servicio de Licenciamiento: Suministra un mecanismo para que los productores controlen el uso de su propiedad intelectual. Los productores pueden implementar el servicio de licenciamiento de acuerdo con sus propias necesidades y las necesidades de los clientes. La tendencia actual es hacia el licenciamiento de componentes en el cual los componentes tendrn que ser escritos para que

108

Una operacin atmica es una operacin que se ejecuta de forma indivisible, sin que se puedan observar estados intermedios en su ejecucin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

automticamente se registren con administradores de licencias. Este servicio permite medir el uso de los componentes y tarificar los mismos de manera flexible. Servicio de Consultas: Permite a los usuarios y objetos invocar consultas en otras colecciones de objetos. Las consultas son declaraciones con sus respectivo atributos, que estructuradas en lenguajes procedimentales como SQL. Servicio de Tiempo: Habilita a los usuarios a obtener el tiempo actual junto con un error estimado asociado a el. Determina el orden en que los eventos ocurrieron y computa el intervalo entre dos eventos. Mantener una nocin nica de tiempo es importante para ordenar los eventos en Sistemas de Objetos Distribuidos. Servicio de Colecciones: Permite al usuario manipular objetos en grupo. Las colecciones son grupos de objetos que soportan algunas operaciones y exhiben comportamientos especficos que estn relacionados a la naturaleza de las colecciones en lugar del tipo de objetos que ellas contienen. Ejemplos de colecciones son conjuntos, colas, pilas, listas y rboles binarios. Servicio de Seguridad: Comprende los servicios de identificacin y autenticacin, autorizacin y control de acceso, seguridad y auditoria, seguridad de comunicacin y administracin.

2. Componentes de CORBA La figura 62 ilustra los principales componentes de CORBA, los cuales se describen brevemente a continuacin:
Figura 62. Componentes de CORBA

Fuente: http://jair.lab.fi.uva.es/~jperez/corba.pdf

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Cabo del Cliente (Client Stub): Cada cabo representa una operacin sobre un objeto invocada por un cliente. El cliente est ligado al cabo de manera esttica. Mediante esta interfaz el cliente invoca los servicios de los objetos conocidos en tiempo de compilacin. La invocacin se hace sobre un objeto local ya que el cabo es un proxy del servidor remoto. Esqueleto de la Implementacin (Implementation Skeleton): Cada esqueleto proporciona una interfaz dependiente del lenguaje de la implementacin del objeto, mediante la cual el ORB invoca las operaciones ofrecidas por dicho objeto. Equivale al cabo del lado del servidor. Invocacin Dinmica (Dynamic Invocation): Es una interfaz mediante la cual un cliente puede construir e invocar dinmicamente operaciones sobre los objetos. Cuando los objetos invocados no se conocen en tiempo de compilacin, es posible en tiempo de ejecucin localizar el servicio deseado y construir la invocacin pasando los parmetros requeridos. Adaptador de Objetos (Object Adapter): Atiende la gestin de los recursos especficos del servidor. Facilita a las implementaciones de los objetos el acceso a los servicios del ORB, como la generacin de referencias, y as mismo al ORB la realizacin de acciones sobre los objetos, como activacin y desactivacin, invocacin de operaciones, etc. Interfaz del ORB (ORB Interface): Es la interfaz para las operaciones del ORB comunes a todos los objetos. Por ejemplo, una referencia hacia un objeto puede ser convertida en una cadena de caracteres y viceversa.

Leccin 4: Introduccin a IDL

CORBA utiliza el lenguaje de definicin de interfaces (IDL / Interface Definition Language) para especificar los interfaces con los servicios que los objetos ofrecern. CORBA puede especificar a partir de este IDL la interfaz a un lenguaje determinado (Figura 63), describiendo cmo los tipos de dato CORBA deben ser utilizados en las implementaciones del cliente y del servidor. Implementaciones estndar existen para Ada, C, C++, Smalltalk, Java. Perl y Python.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 63. El Papel de IDL

Fuente: http://www.infor.uva.es/~fdiaz/so/IDL.pdf

IDL ofrece la sintaxis necesaria para definir los mtodos que se desean invocar remotamente. Una vez creada esta interfaz se debe pasar por un compilador de interfaces que generar el proxy o stub cliente y el skeleton o stub servidor.

Al compilar una interfaz en IDL se genera cdigo para el cliente y el servidor (el implementador del objeto). El cdigo del cliente sirve para poder realizar las llamadas a mtodos remotos. Es el conocido como Cabo (stub), el cual incluye un proxy (representante) del objeto remoto en el lado del cliente. El cdigo generado para el servidor consiste en unos Esqueletos (skeletons) que el desarrollador tiene que rellenar para implementar los mtodos del objeto.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 64. Encapsulamiento IDL

Fuente: http://www.infor.uva.es/~fdiaz/so/IDL.pdf

Figura 65. Desarrollo IDL con Java

Fuente: http://www.infor.uva.es/~fdiaz/so/IDL.pdf

El compilador IDL genera el cabo (stub) del lado del cliente y el esqueleto (skeleton) del lado del servidor. Esto puede hacerse en cualquier lenguaje soportado por el compilador, y adems el cliente y el servidor no estn obligados a utilizar el mismo lenguaje de programacin. Finalmente, se agrega el cdigo del servidor, es decir, el cdigo correspondiente a la interfaz definida en IDL.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 66. Desarrollo IDL con c++

Fuente: http://www.infor.uva.es/~fdiaz/so/IDL.pdf

Figura 67. Ejemplo de interfaz IDL

Fuente: http://www.infor.uva.es/~fdiaz/so/IDL.pdf

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Corba y Aplicaciones109

La figura 68 ilustra el desarrollo de aplicaciones utilizando CORBA. El proceso empieza por la definicin de las clases servidoras mediante el IDL, que es especfico para CORBA.
Figura 68. Desarrollo de aplicaciones con CORBA

Fuente: http://jair.lab.fi.uva.es/~jperez/corba.pdf

El lenguaje Java ha venido tambin a revolucionar las aplicaciones distribuidas con su aportacin de cdigo transportable (Figura 69). Java se asocia perfectamente con la Web logrando una gran sinergia.

CORBA puede complementar estas tecnologas aportando la capacidad de hacer interoperar componentes escritos en diferentes lenguajes de programacin e instalados sobre plataformas heterogneas. CORBA puede aumentar as las opciones para construir las arquitecturas distribuidas abriendo la va del futuro.

109

Si desea conocer las implementaciones CORBA existentes vea http://www.puder.org/CORBA/matrix/

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 69. CORBA, Java y la WEB

Fuente: http://jair.lab.fi.uva.es/~jperez/corba.pdf

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 2: SISTEMAS DE ARCHIVOS DISTRIBUIDOS

110

Introduccin

Los sistemas de archivos distribuidos soportan la comparticin de informacin en forma de archivos a travs de Internet. Un servicio de archivos bien diseado proporciona acceso a los archivos almacenados en un servidor con prestaciones y fiabilidad semejantes (y en algunos casos mejor) que la de archivos almacenados en discos locales. Un sistema de archivos distribuidos permite a los programas almacenar y acceder a archivos remotos del mismo modo que si fueran locales, permitiendo a los usuarios que accedan a archivos desde cualquier computador en una intranet.

Un servicio de archivos permite a los programas almacenar y acceder a los archivos remotos del mismo modo que se hace con los locales, permitiendo a los usuarios acceder a sus archivos desde cualquier computador de una intranet. La concentracin de almacenamiento persistente en unos pocos servidores reduce la necesidad de almacenamiento en disco local y (ms importante) permite economizar la gestin y el archivo de datos persistentes pertenecientes a una organizacin. Otros servicios, como el servicio de nombres, el servicio de autenticacin de usuarios y el servicio de impresin, pueden ser implementados ms fcilmente si hacen llamadas al servicio de archivos, que satisface sus necesidades de almacenamiento permanente. Los servidores web dependen de los sistemas de archivos para el almacenamiento de las pginas web que sirven. En organizaciones que operan con servidores web para acceso externo e interno va una intranet, los servidores web suelen almacenar y acceder al material desde un sistema de archivos local distribuido.

110

COULOURIS George, DOLLIMORE Jean y KINDBERG Tim (2001): SISTEMAS DISTRIBUIDOS Conceptos y Diseo. Pearson Addison Wesley.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 5: Caractersticas de los Sistemas de Archivos

Los sistemas de archivos son responsables de la organizacin, almacenamiento, recuperacin, nominacin (nombrado), comparticin y proteccin de los archivos. Proporcionan una interfaz de programacin caracterstica de la abstraccin de archivo, liberando a los programadores de la preocupacin por los detalles de la asignacin y la disposicin del almacenamiento. Los archivos se almacenan en discos y otros medios de almacenamiento no voltiles. Los archivos contienen datos y atributos. Los datos consisten en una secuencia de elementos de datos (normalmente bytes de 8 bits), donde cualquier porcin de sta es accesible mediante operaciones de lectura y escritura. Los atributos se alojan como un nico registro que contiene informacin como la longitud del archivo, marcas de tiempo, tipo del archivo, identidad del propietario y listas de control de acceso. En la figura 70 se aprecia una estructura tpica del registro de atributos.
Figura 70. Estructura del registro de atributos de un archivo

Tamao del Archivo Marca temporal de creacin Marca temporal de lectura Marca temporal de escritura Marca temporal de atributos Contador de referencias Propietario Tipo de Archivo Lista de control de acceso
Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Los atributos resaltados son administrados por el sistema de archivos y no son modificables habitualmente desde los programas del usuario.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Los sistemas de archivos estn diseados para almacenar y gestionar gran nmero de archivos, con posibilidades de crear, nombrar y borrar archivos. La nomenclatura de los archivos est respaldada por la utilizacin de directorios. Un directorio es un archivo, a menudo de un tipo especial, que relaciona los nombres en texto con los identificadores internos de los archivos. Los directorios pueden incluir los nombres de otros directorios derivando en el esquema familiar de nomenclatura jerrquica de archivos y los nombres de ruta, tanto para los archivos en LINUX, UNIX como para otros sistemas operativos. Los sistemas de archivo tienen tambin la responsabilidad del control de acceso a los archivos, restringiendo el acceso a los mismos de acuerdo con las autorizaciones de los usuarios y el tipo de acceso solicitado (lectura, actualizacin, ejecucin y dems). El trmino metadato se utiliza a menudo para referirse a toda la informacin extra almacenada por un sistema de archivos, que es necesaria para la gestin de los mismos. Incluye los atributos de los archivos, los directorios y todas las dems informaciones persistentes empleadas por el sistema de archivos. La figura 71 muestra una estructura tpica de niveles para la implementacin de un sistema de archivos no distribuido en un sistema operativo convencional.

Figura 71. Mdulos de un sistema de archivos Mdulo de directorio Mdulo de archivos Mdulo de control de acceso Relaciona nombres de acuerdo con los ID de archivos Relaciona ID de archivos con archivos concretos Comprueba los permisos para una operacin (lectura, escritura) solicitada Lee o escribe datos o atributos de un archivo Accede y asigna bloques de disco Entrada/Salida de disco y bferes

Mdulo de acceso a archivos Mdulo de bloques Mdulo de dispositivo

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Cada nivel depende slo de los niveles que se encuentran debajo de l. La implementacin de un servicio de archivos distribuidos requiere todos los componentes indicados, junto a componentes adicionales para ocuparse de la comunicacin cliente-servidor y de la nomenclatura y ubicacin de los archivos distribuidos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Operaciones en el sistema de archivos La figura 72 ilustra las principales operaciones bsicas (primitivas) sobre archivos, que estn disponibles para aplicaciones en sistemas LINUX-UNIX. sas son las llamadas del sistema que implementa el ncleo (kernel), los programadores de aplicaciones normalmente acceden a ellas a travs de bibliotecas de procedimientos, como la librera estndar de entrada-salida de C o las clases archivo de Java.
Figura 72. Operaciones del sistema de archivo de LINUX-UNIX desarchivo = open(nombre, modo) Abre un archivo determinado. existente con un nombre

desarchivo = creat(nombre, modo)

Crea un archivo nuevo con un nombre determinado. Ambas operaciones devuelven un descriptor de archivo que referencia el archivo abierto. El modo es read, write u otro.

estado = close(desarchivo) recuento = read(desarchivo, bfer, n)

Cierra el archivo abierto desarchivo. Transfiere n bytes del archivo referenciado por desarchivo sobre bfer. Transfiere n bytes al archivo referenciado por desarchivo desde bfer. Ambas operaciones retornan el nmero de bytes transferidos realmente y adelanta el apuntador de lectura-escritura.

recuento = write(desarchivo, bfer, n)

pos = Iseekf(desarchivo ,despl, desde)

Desplaza el puntero de lectura-escritura hasta despl. (relativo o absoluto, dependiendo del valor de desde).

estado = unlink(nombre)

Elimina el nombre de archivo de la estructura de directorios. Si e! archivo no tuviera otros nombres, sera tambin eliminado. Aade un nombre nuevo (nombre2) a un archivo (nombre1). Obtiene los atributos de archivo del archivo nombre sobre bfer.

estado = Iink(nombre1, nombre2)

estado = stat(nombre, bfer)

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Se presentan estas primitivas como una indicacin de las operaciones que se espera que los servicios de archivo soporten. Las operaciones de LINUX-UNIX se basan en un modelo de programacin en el que se almacena cierta informacin del estado de un archivo, por el sistema de archivos, para cada programa que lo use. El sistema registra una lista de los archivos abiertos actualmente con un apuntador de lectura-escritura para cada uno, que proporciona la posicin en el archivo en la que se aplicar la siguiente operacin de lectura o escritura. El sistema de archivos es responsable de aplicar el control de acceso para los archivos. En sistemas de archivos locales como en LINUX-UNIX, esto se hace cada vez que se abre un archivo, comprobando los derechos permitidos para la identidad del usuario mediante la lista de control de acceso contra el modo de acceso solicitado en la llamada del sistema open. Si los derechos concuerdan con el modo, el archivo es abierto y el modo se almacena en la informacin del estado del archivo abierto.

Leccin 6: Requisitos del sistema de archivos distribuidos

Muchos de los requisitos y potenciales obstculos en el diseo de servicios distribuidos fueron ya observados en los primeros desarrollos de sistemas de archivos distribuidos. Inicialmente ofrecan transparencia de acceso y transparencia de ubicacin, los requisitos de prestaciones, escalabilidad, control de concurrencia, tolerancia a fallos y seguridad surgieron y se fueron satisfaciendo en fases posteriores del desarrollo. A continuacin se presentan los principales requisitos a considerar para el desarrollo de un sistema de archivos distribuidos.

1. Transparencia El servicio de archivos es el servicio ms fuertemente cargado en una intranet, por lo que su funcionalidad y prestaciones son crticas. El diseo debe balancear la flexibilidad y escalabilidad que se derivan de la transparencia frente a la complejidad del software y las prestaciones. Las siguientes formas de transparencia son parcial o totalmente tratadas por los actuales servicios de archivos: Transparencia de acceso: los programas del cliente no deben preocuparse de la distribucin de los archivos. Se proporciona un conjunto sencillo de operaciones para el acceso a archivos locales y remotos. Los programas

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

escritos para trabajar sobre archivos locales sern capaces de acceder a los archivos remotos sin modificacin. Transparencia de ubicacin: los programas del cliente deben ver un espacio de nombres de archivos uniforme. Los archivos o grupos de archivos pueden ser reubicados sin cambiar sus nombres de ruta, y los programas de usuario vern el mismo espacio de nombres en cualquier parte que sean ejecutados. Transparencia de movilidad: ni los programas del cliente ni las tablas de administracin de sistema en los nodos cliente necesitan ser cambiados cuando se mueven los archivos. Esta movilidad de archivos permite que archivos o, ms comnmente, conjuntos o volmenes de archivos puedan ser movidos, ya sea por los administradores del sistema o automticamente. Transparencia de prestaciones: los programas cliente deben continuar funcionando satisfactoriamente mientras la carga en el servicio vare dentro de un rango especificado. Transparencia de escala: el servicio puede ser aumentado por un crecimiento incremental para tratar con un amplio rango de cargas y tamaos de redes.

2. Actualizaciones concurrentes de archivos Los cambios en un archivo por un cliente no deben interferir con la operacin de otros clientes que acceden o cambian simultneamente el mismo archivo. Este es el tema conocido del control de concurrencia. La necesidad de control de concurrencia para el acceso a datos compartidos en muchas aplicaciones est ampliamente aceptada y las tcnicas para su implementacin son conocidas, aunque muy costosas. La mayora de los servicios de archivos actuales siguen los estndares de UNIX moderno proporcionando bloqueo consultivo u obligatorio a nivel de archivo o registro.

3. Replicacin de archivos En un servicio de archivos que soporta replicacin, un archivo puede estar representado por varias copias de su contenido en diferentes ubicaciones. Esto tiene dos beneficios, permite que mltiples servidores compartan la carga de proporcionar un servicio a los clientes que acceden al mismo conjunto de archivos, mejorando la escalabilidad del servicio y mejorando la tolerancia a fallos, permitiendo a los clientes localizar otro servidor que mantiene una copia del archivo cuando uno ha fallado. Muy pocos servicios de archivos soportan totalmente la replicacin, pero la mayora soportan la cach local de archivos o porciones de archivos, una forma limitada de replicacin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

4. Heterogeneidad del hardware y del sistema operativo Las interfaces del servicio deben estar definidas de modo que el software del cliente y el servidor pueden estar implementados por diferentes sistemas operativos y computadores. Este requisito es un aspecto importante de la extensibilidad.

5. Tolerancia a fallos El papel central de un servicio de archivos en los sistemas distribuidos hace que sea esencial que el servicio contine funcionando aun en el caso de fallos del cliente y del servidor. Afortunadamente un diseo moderadamente tolerante a fallos es inmediato para servidores sencillos. Los servidores pueden ser sin estado111, por lo que pueden ser reiniciados y el servicio restablecido despus de un fallo sin necesidad de recuperar el estado previo. La tolerancia a la desconexin o fallos del servidor precisa de replicacin de los archivos.

6. Consistencia Los sistemas de archivos convencionales, como los que se proporcionan en UNIX, ofrecen una semntica de actualizacin de una copia. Esto se refiere a un modelo para acceso concurrente a archivos, en el que el contenido del archivo visto por todos los procesos que acceden o actualizan a un archivo dado, es aquel que ellos veran si existiera un nica copia del contenido del archivo. Cuando los archivos estn replicados, o en la cach, en diferentes lugares, hay un retardo inevitable en la propagacin de las modificaciones hechas en un lugar hacia los otros lugares que mantienen copias, y esto puede producir alguna desviacin de la semntica de una copia.

7. Seguridad Virtualmente todos los sistemas de archivos proporcionan mecanismos de control de acceso basados en el uso de listas de control de acceso. En sistemas de archivos distribuidos, hay una necesidad de autenticar las solicitudes del cliente por lo que el control de acceso en el servidor est basado en identificar al usuario

Un servidor sin estado es aquel que no recuerda la historia de peticiones anteriores realizadas por los clientes.

111

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

correcto y proteger el contenido de los mensajes de solicitud y respuesta con firmas digitales y (opcionalmente) encriptacin de datos secretos.

8. Eficiencia Un servicio de archivos distribuidos debe ofrecer posibilidades con la misma potencia y generalidad que las que se encuentran en los sistemas de archivos convencionales y deben proporcionar un nivel de prestaciones comparable. Las tcnicas utilizadas para la implementacin de los servicios de archivo son una parte importante del diseo de sistemas distribuidos. Un sistema de archivos distribuidos debe proporcionar un servicio que sea comparable con, o mejor que, los sistemas de archivos locales en prestaciones y fiabilidad. Debe ser adecuado para administrar, proporcionando operaciones y herramientas que permitan a los administradores del sistema instalar y operar el sistema convenientemente.

Leccin 7: Arquitectura del servicio de archivos El alcance de la extensibilidad y configurabilidad se mejora si el servicio de archivos se estructura en tres componentes, un servicio de archivos plano, un servicio de directorio y un mdulo cliente. Los mdulos relevantes y sus relaciones se ven en la figura 73.
Figura 73. Arquitectura del Servicio de Archivos

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El servicio de archivos plano y el servicio de directorio exportan cada uno una interfaz, para su uso por los programas del cliente y sus interfaces RPC, consideradas conjuntamente, proporcionan un conjunto global de operaciones para acceso a archivos. El mdulo cliente proporciona una interfaz de programacin sencilla con operaciones sobre archivos semejantes a las encontradas en los sistemas de archivos convencionales. El diseo es abierto en el sentido que pueden utilizarse diferentes mdulos cliente para implementar diferentes interfaces de programacin, simulando las operaciones sobre archivos de una variedad de diferentes sistemas operativos y optimizando las prestaciones para diferentes configuraciones de hardware del cliente y el servidor. La divisin de las responsabilidades entre los mdulos puede definirse como sigue:

1. Servicio de archivos planos El servicio de archivos planos est relacionado con la implementacin de operaciones en el contenido de los archivos. Se utilizan identificadores nicos de archivos (UFID / Unique File IDentifiers ) para referirse a los archivos en todas las solicitudes de operaciones del servicio de archivos plano. La divisin de responsabilidades entre el servicio de archivos y el servicio de directorio, est basada en la utilizacin de UFID. Cada UFID es una secuencia larga de bits elegidas de forma que cada archivo tiene un UFID que es nico entre todos los archivos en un sistema distribuido. Cuando el servicio de archivos planos recibe una solicitud para crear un archivo, genera un nuevo UFID para l y lo devuelve al solicitante.

2. Servicio de directorio El servicio de directorio proporciona una transformacin entre nombres de texto para los archivos y sus UFID. Los clientes pueden obtener el UFID de un archivo indicando su nombre de texto al servicio de directorio. El servicio de directorio proporciona las funciones necesarias para generar directorios, para aadir nuevos nombres de archivo a los directorios y para obtener UFID desde los directorios. Es un cliente del servicio de archivos plano, sus archivos de directorio estn almacenados en archivos del servicio de archivos plano. Cuando se adopta un esquema jerrquico de nominacin de archivos, como en UNIX, los directorios mantienen referencias a otros directorios.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

3. Mdulo cliente En cada computador cliente se ejecuta un mdulo de cliente, que integra y extiende las operaciones del servicio de archivos plano y el servicio de directorio bajo una interfaz de programacin de aplicaciones sencilla, que estar disponible para los programas a nivel de usuario en los computadores cliente. Por ejemplo, en mquinas UNIX, se debe proporcionar un mdulo cliente que emula el conjunto total de operaciones UNIX sobre archivos, interpretando los nombres compuestos de archivos UNIX mediante reiteradas solicitudes al servicio de directorio. El mdulo cliente mantiene tambin informacin sobre las ubicaciones en la red del proceso servidor de archivos planos y del proceso servidor de directorio. Finalmente el mdulo cliente puede jugar un papel importante consiguiendo unas prestaciones satisfactorias mediante la implementacin de una cach de los bloques de archivos utilizados recientemente en el cliente.

4. Interfaz del servicio de archivos plano La figura 74 contiene una definicin de la interfaz para un servicio de archivos planos. Es la interfaz RPC utilizada por los mdulos cliente. No es utilizada directamente por los programas a nivel de usuario. Un IdArchivo es invlido si el archivo a que se refiere no est presente en el servidor que procesa la solicitud o si sus permisos de acceso son inapropiados para la operacin solicitada. Todos los procedimientos de la interfaz excepto Crea lanzan excepciones si el argumento IdArchivo contiene un UFID invlido o el usuario no tiene los derechos de acceso suficientes.
Figura 74. Operaciones del servicio de archivos plano Lee(IdArchivo,i,n) - lanza MalaPosicin Escribe(IdArchivo,i,Datos) - lanza MalaPosicin Datos Si 1 i Tamao(Archivo): Lee una secuencia de hasta n elementos del archivo, partiendo del elemento i y la devuelve en Datos. Si 1 i Tamao(Archivo): Escribe una secuencia de datos sobre el archivo, partiendo del elemento i, y extendiendo el archivo si es preciso. Crea un nuevo archivo de tamao 0 y obtiene un UFID para l. Elimina el archivo del almacn de archivos Atrib Obtiene los atributos del archivo Pone los atributos del archivo

Crea()

Id Archivo

Elimina(IdArchivo) DameAtributos(IdArchivo)

PonAtributos(IdArchivo, Atrib)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Autor: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Las operaciones ms importantes son las de lectura y escritura. Tanto la operacin de lectura como la de escritura necesitan un parmetro i especificando una posicin en el archivo. La operacin de lectura copia la secuencia de n elementos de datos comenzando en el elemento i del archivo especificado en Datos que se devuelve entonces al cliente. La operacin Escribe copia la secuencia de elementos de datos de Datos en el archivo especificado comenzando en el elemento i, reemplazando el contenido anterior del archivo en la posicin correspondiente y extendiendo el archivo si es necesario. Crea crea un archivo nuevo, vaco y devuelve el UFID que se ha generado. Elimina borra el archivo especificado. DameAtributos y PonAtributos permiten a los usuarios acceder al registro de los atributos. DameAtributos est disponible generalmente para cualquier usuario que acceda al archivo. El acceso a la operacin PonAtributos suele estar restringida normalmente al servicio de directorio que accede al archivo. Los valores de la longitud y de las partes de marcas de tiempo del registro de atributos no son afectados por PonAtributos, son mantenidos por el servicio de archivos planos.

Leccin 8: Sistema de archivos de red de SUN (NFS)

El sistema de archivos de red NFS (Network File System) fue desarrollado por la empresa Sun Microsystems y es un sistema de archivos distribuidos que opera en las plataformas LINUX y UNIX. La figura 75 representa la arquitectura de NFS de Sun.

Todas las implementaciones de NFS soportan el protocolo de NFS: un conjunto de llamadas a procedimientos remotos que proporcionan el medio para que los clientes realicen operaciones en un almacn de archivos remotos. El protocolo NFS es independiente del sistema operativo pero fue desarrollado originalmente

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

para su utilizacin en redes de sistemas UNIX. Al emerger LINUX, adopto ste sistema como estndar.
Figura 75. Arquitectura NFS

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

El mdulo servidor NFS reside en el ncleo de cada computador que acta como un servidor NFS. Las solicitudes que se refieren a archivos en un sistema de archivos remoto se traducen en el mdulo cliente a operaciones del protocolo NFS y despus se trasladan al mdulo servidor NFS en el computador que mantiene el sistema de archivos relevante.

Los mdulos cliente y servidor NFS se comunican utilizando llamadas a procedimientos remotos. El sistema RPC de SUN, se desarroll para su uso en NFS. Puede configurarse para utilizar UDP o TCP, y el protocolo NFS es compatible con ambos. Incluye un servicio de enlace que permite a los clientes encontrar los servicios de una mquina a partir del nombre. La interfaz RPC para el servidor NFS es abierta: cualquier proceso puede enviar solicitudes a un servidor NFS. Si las solicitudes son vlidas e incluyen credenciales vlidas del usuario, sern ejecutadas. El envo de credenciales firmadas del usuario puede requerirse como una caracterstica adicional de seguridad, como lo puede ser la encriptacin de los datos para privacidad e integridad.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

A continuacin se destacan las principales caractersticas del sistema NFS:

1. Sistema de archivos virtuales La figura 75 expone claramente que NFS proporciona acceso transparente: los programas del usuario pueden realizar operaciones sobre los archivos locales o remotos sin distincin. Otros sistemas de archivos distribuidos pueden considerar que permiten las llamadas al sistema de UNIX, y si lo hacen, podran integrarse de la misma forma. La integracin se obtiene mediante un mdulo de sistema de archivos virtual (VFS / Virtual File System), que ha sido aadido al kernel de UNIX para distinguir entre archivos remotos y locales y para traducir los identificadores de archivo, independientes de UNIX, utilizados por NFS en los identificadores de archivo internos utilizados en UNIX y otros sistemas de archivos. En resumen, VFS mantiene la pista de los sistemas de archivos que estn actualmente disponibles tanto local como remotamente, pasa cada solicitud al mdulo del sistema local apropiado (el sistema de archivos UNIX, el mdulo cliente NFS o el mdulo de servicio de otro sistema de archivos). Los identificadores de archivo utilizados en NFS se llaman apuntadores de archivo (Figura 76). Un apuntador de archivo es opaco para los clientes y contiene toda la informacin que necesita el servidor para distinguir un archivo individual. En las implementaciones UNIX de NFS, el apuntador de archivo se deriva del nmero de i-nodo del archivo, aadiendo dos campos extra como sigue (el nmero de i-nodo de un archivo UNIX es un nmero que sirve para identificar y localizar el archivo en el sistema de archivos en el que est almacenado):
Figura 76. Apuntador de archivo

Identificador del filesystem

Nmero de i-nodo del archivo

Nmero de generacin de i-nodos

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

NFS adopta el filesystem (volumen)112 montable de UNIX como la unidad de agrupacin de archivos definida en la seccin precedente. El campo identificador del volumen es un nmero nico que se reserva para cada volumen cuando se crea (y en la implementacin UNIX se almacena en el superbloque del sistema de archivos). La generacin del nmero de i-nodo es necesaria porque en el sistema de archivos normal de UNIX los nmeros de i-nodo se reutilizan despus de la eliminacin del archivo. En las extensiones VFS al sistema de archivos UNIX, se almacena un nmero de generacin con cada archivo y se incrementa cada vez que se reutiliza el nmero de i-nodo (por ejemplo, en una llamada creat del sistema UNIX). El cliente obtiene el primer apuntador de archivo para un sistema de archivos remotos cuando lo monta. Los apuntadores de archivos se pasan del servidor al cliente en los resultados de las operaciones lookup, create y mkdir (consultar la figura 77) y del cliente al servidor en la lista de argumentos de todas las operaciones del servidor. La capa del sistema de archivos virtual tiene una estructura VFS por cada sistema de archivos montado y un v-nodo por archivo abierto. Una estructura VFS relaciona un sistema de archivos remoto con el directorio local en el que est montado. El v-nodo contiene un indicador para mostrar si el archivo es local o remoto. Si el archivo es local, el v-nodo contiene una referencia al ndice del archivo local (un i-nodo en una implementacin UNIX). Si el archivo es remoto, contiene un apuntador al archivo remoto.

2. Integracin del cliente El cliente NFS juega el papel descrito para el mdulo cliente en el modelo arquitectnico, proporcionado una interfaz idnea para su uso por programas de aplicacin convencionales. Pero a diferencia del mdulo cliente del modelo, emula la semntica de las primitivas del sistema de archivos estndar de UNIX de forma precisa y est integrado con el ncleo UNIX. Est integrado con el ncleo y no proporcionado como una librera para cargar en los procesos clientes de modo que: Los programas de usuario pueden acceder a los archivos mediante llamadas del sistema de UNIX sin recompilacin o recarga.

112

El trmino filesystem (volumen) se refiere al conjunto de archivos mantenidos en un dispositivo de almacenamiento o particin.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Un nico mdulo cliente sirve a todos los procesos del nivel del usuario, con una cach compartida de los bloques utilizados recientemente. La clave de encriptacin utilizada para autenticar las ID del usuario pasadas al servidor (ver ms adelante) puede retenerse en el ncleo, previniendo la impersonacin por clientes a nivel de usuario.

El mdulo cliente de NFS coopera con el sistema de archivos virtual en cada mquina cliente. Funciona de una manera semejante al sistema de archivos convencional de UNIX, transfiriendo bloques de archivos hacia y desde el servidor y haciendo caching113 de los bloques en la memoria local cuando es posible. Comparte el mismo bfer de cach que el utilizado por el sistema de entradasalida local. Pero puesto que varios clientes en diferentes mquinas pueden acceder simultneamente al mismo archivo remoto, se plantea un nuevo y significativo problema de consistencia de cach.

3. Control de acceso y autenticacin

A diferencia del sistema de archivos convencional UNIX, el servidor NFS es sin estado y no mantiene archivos abiertos en nombre de sus clientes. Por lo tanto el servidor debe comprobar la identidad del usuario frente a los atributos de acceso del archivo en cada solicitud, para ver si el usuario tiene permiso de acceso al archivo de la forma solicitada. El protocolo Sun RPC requiere que los clientes enven la informacin de autenticacin del usuario (por ejemplo, los convencionales 16 bits de la ID del usuario y del grupo de UNIX) con cada solicitud y sta se comprueba frente a los permisos de acceso en los atributos del archivo. En aras de mejorar la seguridad de NFS, Recientemente, se ha integrado Kerberos114 en Sun NFS para proporcionar una solucin ms fuerte y completa a los problemas de autenticacin y seguridad del usuario.

Tcnica consistente en duplicar datos de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el cach. Cuando se accede por primera vez a un dato, se hace una copia en el cach; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso aparente al dato sea menor. 114 Kerberos es un protocolo de autentificacin de red. Est diseado para suministrar una potente autentificacin para aplicaciones cliente/servidor usando criptografa secret-key. Una versin gratuita de este protocolo est disponible en el Massachusetts Institute of Technology (http://web.mit.edu/kerberos/).

113

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

4. Interfaz del servidor NFS En la figura 77 se ve una representacin simplificada de la interfaz RPC proporcionada por el servidor NFS (definida en RFC-1813115). Las operaciones NFS de acceso al archivo read, write, getattr y setattr son casi idnticas a las operaciones Lee, Escribe, DameAtributos y PonAtributos definidas en el modelo de servicio de archivos planos (Figura 69).
Figura 77. Operaciones del Servidor NFS (simplificado) lookup(aadir, nombre) aa, atrib Devuelve el apuntador del archivo y los atributos para el archivo nombre en el directorio aadir. aanuevo, Crea un nuevo archivo nombre en el directorio aadir con los atributos atrib y devuelve el nuevo apuntador de archivo y sus atributos. Elimina el archivo nombre del directorio aadir. Devuelve los atributos del archivo aa. (Igual que la llamada UNIX stat.) Establece los atributos (modo, ID usuario, ID grupo, tamao, tiempo de acceso y tiempo de modificacin de un archivo). Si se pone el tamao a 0 se trunca el archivo. atrib, datos Devuelve hasta conteo bytes de datos desde el archivo, comenzando en despl. Tambin devuelve los atributos ms recientes del archivo. Escribe conteo bytes de datos sobre el archivo, comenzando en despl. Tambin devuelve los atributos del archivo tras la operacin de escritura. Cambia el nombre del archivo nombre del directorio aadir en destnombre del directorio destaadir. Crea una entrada nuevonombre en el directorio nuevoaadir que se refiere al archivo nombre en el directorio aadir. Crea una entrada nuevonombre en el directorio nuevoaadir, con un enlace simblico con el valor texto. El servidor no interpreta texto pero crea un archivo de enlace simblico para alojarlo.

create(aadir, nombre, atrib) atrib

remove(aadir, nombre) getattr(aa) atrib

estado

setattr(aa)

atrib

read(aa, despl, conteo)

write(aa, despl, conteo, datos)

atrib

rename(aadir, nombre, destnombre) estado

destaadir,

link(nuevoaadir, nuevonombre, nombre) estado

aadir,

symlink(nuevoaadir, nuevonombre, texto) estado

115

http://www.ietf.org/rfc/rfc1813.txt

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS readlink(aa) texto Devuelve el texto asociado con el archivo de enlace simblico identificado por aa. nuevoaa, Crea un nuevo directorio nombre con los atributos atrib y devuelve el nuevo apuntador de archivo (nuevoaa) y sus atributos. Elimina el directorio vaco nombre del directorio padre aadir. Falla si el directorio no est vaco. entradas Devuelve conteo bytes de entradas de directorio desde el directorio aadir. Cada entrada contiene un nombre de archivo, un apuntador a archivo, y un puntero opaco a la siguiente entrada del directorio, denominado cookie (galletita). cookie se emplea en las siguientes llamadas a readdir para comenzar la lectura desde la siguiente entrada. Si se pone el valor de cookie a 0, lee desde la primera entrada. Devuelve informacin sobre el sistema de archivos (tal como tamao de bloque, nmero de bloques libres y dems) para el sistema de archivos que contiene el archivo aa.

Medir(aadir, nombre, atrib) atrib

rmdir(aadir, nombre)

estado

readdir(aadir, cookie, conteo)

statfs(aa)

estadosf

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

Las operaciones de archivo y directorio estn integradas en un nico servicio, la creacin e insercin de nombres de archivo en directorios se realiza en una nica operacin create que toma el nombre del nuevo archivo y el apuntador de archivo del directorio destino (aadir) como argumentos. Las otras operaciones NFS sobre directorios son create, remove, rename, link, sym-link, readlink, mkdir, rmdir, readdir y statfs.

5. Servicio de montado El montado de los sub-rboles de los sistemas de archivos remotos por los clientes est soportado por un proceso de servicio de montado separado que se ejecuta a nivel de usuario en cada computador servidor NFS. En cada servidor, hay un archivo con un nombre bien conocido (/etc/exports) conteniendo los nombres de los sistemas de archivos locales que estn disponibles para montado remoto. Se asocia una lista de acceso con cada nombre del sistema de archivos indicando qu mquinas estn autorizadas para montar el sistema de archivos.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Los clientes utilizan una versin modificada del comando mount de UNIX para solicitar el montado de un sistema de archivos remoto, especificando el nombre de la mquina remota, el nombre de la ruta de un directorio en el sistema de archivos remoto y el nombre local con el que va a ser montado. El directorio remoto puede ser cualquier sub-rbol del sistema de archivos remoto solicitado, permitiendo a los clientes montar cualquier parte del sistema de archivos remoto. El comando mount modificado comunica con el proceso del servicio de montado en la mquina remota, utilizando un protocolo de montado. ste es un protocolo RPC e incluye una operacin que toma un nombre de ruta de directorio y devuelve el asidero de archivo del directorio especificado si el cliente tiene permiso de acceso para el sistema de archivos relevante. La ubicacin (direccin IP y nmero de puerto) del servidor y el asidero de archivo para el directorio remoto se pasan a la capa VFS y al cliente NFS. La figura 78 muestra un cliente con dos almacenes de archivos montados remotamente. Los nodos gente y usuarios en los sistemas de archivos en el Servidor 1 y Servidor 2 estn montados sobre los nodos estudiantes y personal en el almacn de archivos local del cliente. El significado de esto es que programas que se ejecuten en cliente pueden acceder a archivos en Servidor 1 y Servidor 2 utilizando nombres de ruta como /usr/estudiantes/jon y /usr/personal/ana.
Figura 78. Sistemas de archivos locales y remotos accesibles desde un cliente NFS

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

6. Fortalezas de NFS NFS de Sun se ajusta fuertemente al modelo de arquitectura de un sistema de archivos distribuidos. NFS soporta hardware y sistemas operativos heterogneos. La implementacin del servidor NFS es sin estado, permitiendo a los clientes y servidores recuperar la ejecucin despus de un fallo sin necesidad de ningn procedimiento de recuperacin. La migracin de archivos o sistemas de archivos no est soportada, excepto en el nivel de intervencin manual para reconfigurar las directivas de montado despus de un movimiento de un sistema de archivos a una nueva ubicacin. Los otros aspectos de diseo de NFS y las ventajas que con ellos se consiguen, se presentan a continuacin: Transparencia de acceso: el mdulo cliente NFS proporciona una interfaz de programacin de aplicacin para los procesos locales que es idntica a la interfaz del sistema operativo local. Por tanto en un cliente UNIX-LINUX, los accesos a archivos remotos se realizan utilizando llamadas al sistema normales de UNIX. No se precisa modificar los programas existentes para poder trabajar correctamente con archivos remotos. Transparencia de ubicacin: cada cliente establece un espacio de nombres de archivo aadiendo directorios montados en volmenes remotos sobre su espacio local de nombres. Los sistemas de archivos han de ser exportados por el nodo que los mantiene y montados remotamente por un cliente antes que ellos puedan ser accedidos por procesos ejecutndose en el cliente (Figura 78). El punto de la jerarqua de nombres del cliente donde aparece montado remotamente un sistema de archivos lo determina el cliente, por tanto NFS no fuerza un espacio de nombres de archivo nico a travs de la red; cada cliente ve un conjunto de sistemas de archivos remotos que es determinado localmente, y los archivos remotos pueden tener diferentes nombres de ruta en diferentes clientes, pero se puede establecer un espacio de nombres uniforme en cada cliente mediante las tablas de configuracin apropiadas, logrando el objetivo de transparencia de ubicacin. Transparencia de movilidad: los volmenes (en el sentido UNIX-LINUX, esto es, subrboles de archivos) pueden ser reubicados entre servidores, pero las tablas de montado remoto en cada cliente deben ser actualizadas separadamente para permitir a los clientes el acceso al sistema de archivos en su nueva ubicacin, por lo que la transparencia de migracin no est totalmente conseguida en NFS.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Escalabilidad: las cifras de prestaciones publicadas muestran que se pueden construir servidores NFS que mantengan cargas reales muy grandes, de una manera eficiente y beneficiosa. Se pueden incrementar las prestaciones de un nico servidor mediante la adicin de procesadores, discos y controladores. Cuando los lmites de esos procesos son alcanzados, hay que instalar servidores adicionales y los sistemas de archivos deben ser reubicados entre ellos. Replicacin de archivos: los almacenes de archivos de slo lectura pueden ser replicados en varios servidores NFS, pero NFS no soporta la replicacin de archivos actualizables. El Servicio de Informacin de Red de Sun (NIS / Network Information Service) es un servicio separado disponible para su uso con NFS que soporta la replicacin de bases de datos sencillas organizadas como pares clavevalor (por ejemplo, los archivos del sistema UNIX /etc/passwd y /etc/hosts). NIS proporcionan un almacn compartido para informacin del sistema que cambia infrecuentemente y no requiere que las actualizaciones ocurran simultneamente en todos los sitios. Heterogeneidad del hardware y del sistema operativo: NFS ha sido implementado para casi todos los sistemas operativos y plataformas hardware conocidos y est soportado por una variedad de sistemas de archivos. Tolerancia a fallos: cuando un servidor falla, el servicio que proporciona se suspende hasta que se reinicia el servidor, pero una vez que ha sido reiniciado los procesos cliente a nivel de usuario proceden desde el punto en el que fue interrumpido el servicio sin darse cuenta del fallo. El fallo de un computador cliente o de un proceso a nivel de usuario en un cliente no tiene efecto sobre ningn servidor que el pueda estar utilizando, puesto que los servidores no mantienen el estado en nombre de sus clientes. Seguridad: las necesidades de seguridad en NFS slo emergen al conectar la mayora de las intranets con Internet. La integracin de Kerberos116 con NFS fue un salto fundamental hacia delante. Otros desarrollos recientes incluyen la opcin de utilizar una implementacin RPC segura (RPCSEC- GSS, documentada en RFC-2203117) para la autenticacin y la privacidad y seguridad de los datos transmitidos con las operaciones de lectura y escritura. Eficiencia: las prestaciones medidas de varias implementaciones de NFS y su amplia adopcin para uso en situaciones que generan cargas muy pesadas son indicaciones claras de la eficiencia con la que puede ser implementado el protocolo NFS.
116 117

Ver concepto ampliado en el glosario. http://www.ietf.org/rfc/rfc2203.txt

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 3: SERVICIOS WEB

Introduccin En los apartados anteriores se ha hecho gran nfasis en la distribucin de la lgica de la aplicacin sobre la red mediante tecnologas distribuidas como CORBA, DCOM y RMI. La evolucin de los entornos Web en las Organizaciones ha llevado a replantear la distribucin de la lgica de la aplicacin sobre la WEB y es as como surge el concepto de Servicios Web, el cual es considerado como una enorme API de servicios (Web de Componentes). Los Servicios Web tienen una especial aplicacin en los siguientes entornos: Empresas de Valor Agregado (B2B / Business to Business, Negocio a Negocio) Sistemas distribuidos sobre Internet
Figura 79. Niveles de Aplicaciones Web

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 80. Interaccin de Aplicaciones Web con Objetos Distribuidos

Fuente: Autor

Los Servicios Web son una arquitectura distribuida en evolucin que usan sus propias interfaces programas-programa, protocolos y servicios de registro de tal manera que posibilitan que aplicaciones de diferentes plataformas tecnolgicas puedan utilizar servicios de otras aplicaciones. Un Servicio Web se aprovecha de la especificacin de XML118, para definir tanto su descripcin como los mensajes que recibe y produce. Algunas de sus caractersticas son: Interconecta aplicaciones distribuidas sobre Internet. Utiliza protocolos Web estndar como HTTP, XML. Semnticamente encapsula funcionalidades discretas. Se utiliza en sistemas dbilmente acoplados con componentes reutilizables. Dado que todas las comunicaciones se realizan en XML, los Servicios Web no dependen de sistemas operativos especficos. De acuerdo con esto Java puede hablar con ASP119, WINDOWS con LINUX, etc.

118 119

Lenguaje de Marcacin Extensible (eXtensible Markup Language) Servidor de Pginas Activo (Active Server Pages)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 9: Arquitectura y tecnologas bsicas de los servicios web La estructura de un Servicio Web est basada en una arquitectura de protocolos con funciones especficas segn la figura 81.
Figura 81. Protocolos de Servicios Web

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf

A continuacin se presentan de manera detallada cada uno de los componentes de la arquitectura basada en Servicios WEB.

1. XML XML (eXtensible Markup Language / Lenguaje de Marcacin Extensible). Es un estndar en evolucin que ha establecido un marco heterogneo para compartir informacin sobre la Web. XML ha sufrido una evolucin desde la simple representacin de informacin estructurada hasta la posibilidad de compartir procesos.

1.1. Caractersticas La tecnologa XML para desarrollo de Servicios Web presenta las siguientes caractersticas:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Puede ser ledo tanto por mquinas como por personas (XML es texto, lo que permite que los expertos puedan depurar los archivos XML fcilmente con herramientas universales como el vi120 o cualquier editor de texto). Los documentos XML siguen unas reglas de generacin sencillas pero bien definidas que les hace fcilmente procesables y le permiten el intercambio de informacin sobre Internet. Utiliza el conjunto de caracteres UNICODE121, lo que facilita la internacionalizacin. Ayuda a descongestionar Internet, ya que gran parte del procesamiento se puede hacer en el cliente. XML Facilita encontrar lo que se est buscando: exactitud y agilidad. Es Independiente de medio: para publicar contenidos en mltiples formatos. Es Independiente de fabricante y de plataforma: para poder utilizar cualquier herramienta estndar. Permite que cualquier lenguaje creado con l puede ser analizado sintcticamente por un procesador tan pequeo que puede ser incluido en un navegador Web. No es compatible con HTML, pero los documentos HTMLv4.0 son fcilmente convertibles a XML.

1.2. Documentos XML Todo documento XML se caracteriza por utilizar marcado descriptivo, de manera que utiliza las etiquetas que delimitan una porcin del documento y dicen lo que es. Los documentos comienzan con la instruccin de procesamiento: <?xml version="1.0" ?> que los identifican como documentos XML.

Ejemplo: Un correo electrnico

<?xml version="1.0" ?> <!doctype email system "http://www.sitio.es/DTDs/email.dtd"> Vi es el editor de texto estndar utilizado en el sistema UNIX. Cdigo de caracteres de 16-Bits (definido por la norma ISO 10646) el cual soporta un mximo de 65536 caracteres y muy superior a los 256 que soporta el cdigo ASCII.
121 120

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS <email id="E1X108"> <head> <from> <name>Jess Vegas</name> <address>jvegas@infor.uva.es</address> </from> <to> <name>Fulanito</name> <address>fulanito@unsitio.es</address> </to> <subject>Introduccin a XML</subject> </head> <body> <p>Este es el guin de la conferencia sobre XML. Mira a ver qu te parece. Saludos, jvegas.</p> <attach encoding="mime" name="ixml.html" /> </body> </email>

2. SOAP

SOAP (Simple Access Object Protocol / Protocolo Simple de Acceso a Objeto) Es un protocolo de aplicacin simple y extensible basado en mensajes, que permite el intercambio de informacin estructurada y tipeada, entre aplicaciones en un entorno distribuido. SOAP no define el uso de un protocolo de transporte como FTP o SMTP. El contenido del mensaje SOAP es independiente del protocolo que lo transporte. Debido a que HTTP es el protocolo de transporte ms popular de Internet, SOAP describe una convencin a usar cuando el transporte se realiza mediante HTTP.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

SOAP RPC corresponde al protocolo usado para el transporte del mensaje SOAP. (Figura 82). La invocacin RPC se mapea al request de HTTP. La respuesta RPC se mapea al response de HTTP.
Figura 82. Operacin del Protocolo SOAP RPC

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf

Para realizar una invocacin RPC es necesaria la siguiente informacin (Fig. 78):
Figura 83. Ejemplo de Mensaje SOAP

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf

El URL del receptor del mensaje. El nombre del procedimiento o mtodo. Los parmetros del procedimiento o mtodo.

Operacin de SOAP Las figuras 84 y 85 describen paso a paso la operacin del protocolo SOAP en un entorno distribuido:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 84. Operacin SOAP Proceso cliente

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf Figura 85. Operacin SOAP Proceso Servidor

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

3. WSDL (Web Services Description Language / Lenguaje de descripcin de Servicios Web) Es un documento XML que describe la interfaz semntica y administracin de llamada al Servicio Web. Las operaciones y mensajes se describen en forma abstracta y despus se enlazan a un protocolo de red y a un formato de mensaje concreto. Los elementos caractersticos de WSDL se presentan en la figura 86 y se describen a continuacin:
Figura 86. Elementos WSDL

Fuente: Autor

Mensajes (Message): Definicin abstracta y escrita de los datos que se estn comunicando. Tipos de Puerto (Port Type): Conjunto abstracto de las operaciones admitidas por uno o ms puntos finales. Tipos (Type): Contenedor de definiciones del tipo de datos. Operaciones (Operations): Accin solicitada al servicio.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Enlaces (Binding122): Especificacin del protocolo y del formato de datos para un tipo de puerto determinado. Puertos (Port): Punto Final = Direccin de Red + Enlace (Binding) Servicios (Services): Coleccin de Puntos finales relacionados.

4. UDDI (Universal Description, Discovery and Integration / Descripcin Universal, Descubrimiento e Integracin). Es una especificacin usada para descubrir registros distribuidos de Servicios Web. Opera como un directorio en red para descubrir Servicios web. Como se aprecia en la figura 87 todos los Servicios web que la empresa ofrece deben determinarse a travs de UDDI.
Figura 87. Integracin WSDL - UDDI

Fuente: http://bmrc.berkeley.edu/research/publications/1996/104/WS.pdf

Proceso de establecer comunicaciones entre el driver del protocolo del dispositivo y el driver de la tarjeta de interfaz de red (NIC).

122

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

5. WSFL (Web Services Flow Language / Lenguaje de Flujo de Servicios Web). Se trata de un sencillo lenguaje basado en XML y diseado para representar flujos de Servicios Web que faciliten la creacin de Orquestaciones de estos servicios. Se define como orquestacin de Servicios Web al concepto de recoger un conjunto de servicios para ofrecer una solucin que se adapta a algn proceso de negocio.
Figura 88. Ejemplo de WSFL

Fuente: Autor

Segn la figura 88, las actividades son las tareas a realizar mientras que los proveedores de servicios son los encargados de realizar dichas actividades.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 10: Implementacin de los servicios web

Al disear un Servicio Web se debe considerar lo siguiente: El Servicio Web debe tener una interfaz pblica definida en una gramtica comn en XML, la interfaz debe describir todos los mtodos disponibles a los clientes y especificar la firma para cada mtodo. Todo Servicio Web debe tener una forma de publicarse, debe existir una forma de localizar el servicio y localizar su interfaz pblica. Esto se realiza con UDDI (Universal Description Discovery and Integration / Descripcin Universal Descubrimiento e Integracin) Interoperabilidad entre ambientes de desarrollo: Tradicionalmente el webmaster123 de una empresa deba decidir en que ambiente de desarrollo trabajar (me voy por Java, me voy por Microsoft, me voy por Oracle) y una vez decido ese ambiente de desarrollo se produca un matrimonio con dicha plataforma. Al emplear Servicios Web se pueden desarrollar e integrar aplicaciones en plataformas heterogneas.

A manera de conclusin se presenta un ejemplo ilustrativo (Figura 89) acerca de una plataforma operativa de Servicios Web:
Figura 89. Ejemplo de Servicios Web

Fuente: Autor

123

Persona responsable del matenimiento y administracin de un sitio Web.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Se instala en Internet una agencia de viajes virtual cuya funcin es elaborar el mejor paquete turstico a partir de un conjunto de condiciones (destinos, hoteles, precios, etc). Una vez dadas las condiciones, en la agencia virtual se generan agentes inteligentes que indagan en la Web y renen toda la informacin necesaria para realizar el viaje.

Servicios web versus sistemas distribuidos tradicionales Los Servicios Web presentan algunas diferencias sobre los sistemas distribuidos tradicionales: Escaso Acoplamiento: El cliente no necesita conocer nada acerca de la implementacin del servicio al que est accediendo. Independencia del lenguaje de programacin: El Servidor y el cliente no necesitan estar escritos en el mismo lenguaje. Independencia del modo de transporte: SOAP puede funcionar sobre mltiples protocolos de transporte como por ejemplo HTTP, HTTPS124, BEEP, JABBER, IIOP125, SMTP, FTP. Mltiples modos de invocacin: Los Servicios Web soportan tanto invocacin esttica como invocacin dinmica. Mltiples estilos de comunicacin: Los Servicios Web soportan tanto comunicacin sncrona (RPC) como comunicacin asncrona (Mensajera). Extensibilidad: Al estar basados en XML, los Servicios Web son fciles de adaptar, extender y personalizar.

124 125

Protocolo de Transferencia de Hipertexto Seguro (Secure Hiper-Text Transfer Protocol) Internet Inter-ORB Protocol . Parte de la arquitectura CORBA que permite la interaccin sobre redes TCP/IP reemplazando al protocolo HTTP.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Leccin 11: Tendencias en servicios web web semntica126

La Web semntica es la idea de aadir metadatos semnticos a la World Wide Web. Esas informaciones adicionales describiendo el contenido, el significado y la relacin de los datos deben ser dadas de manera formal, as que es posible evaluarlas automticamente por mquinas. El destino es mejorar la World Wide Web ampliando la interoperabilidad entre los sistemas informticos y reduciendo la mediacin de operadores humanos.
Figura 90. Consulta en Web Semntica

Fuente: Autor

En la figura 90 se presenta un ejemplo simplificado de lo que puede llegar a ser una consulta en web semntica. Mediante una interfaz amigable se realiza una pregunta en lenguaje natural indagando acerca de los pediatras en Bucaramanga que atienden por el seguro social. El sistema a travs de un entramado de datos distribuidos realiza la bsqueda y entrega la informacin solicitada. Segn Tim Berners-Lee (padre de la Web actual) la web semntica es una visin futura para disponer datos en la Web definidos y enlazados de forma que puedan ser utilizados por las mquinas no solamente para visualizarlos sino tambin para: automatizar tareas, integrar y reutilizar datos entre aplicaciones
126

http://es.wikipedia.org/wiki/Web_semantica

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

CAPITULO 4: OTRAS APLICACIONES DISTRIBUIDAS

Introduccin La presente unidad finaliza con un capitulo dedicado al conocimiento en profundidad del sistema de nombres de dominio (DNS) y de los sistemas de gestin distribuida, tan necesarios para tener un control centralizado de cada unos de los componentes de un sistema distribuido.

Leccin 12: Fundamentos de DNS

El Sistema de Nombres de Dominio (del Ingls DNS / Domain Name System) es una base de datos distribuida y jerrquica que almacena informacin asociada a nombres de dominio en redes como Internet. Aunque como base de datos el DNS es capaz de asociar distintos tipos de informacin a cada nombre, los usos ms comunes son la asignacin de nombres de dominio a direcciones IP y la localizacin de los servidores de correo electrnico de cada dominio.

Actualmente el direccionamiento IP se basa en el protocolo IPv4 (Figura 91) en el cual cada direccin tiene una estructura A.A.A.A donde cada A corresponde a un valor entre 0 y 255. Todo equipo asociado a Internet o a una Intranet posee una direccin IP que determina su ubicacin en la red. Debido a lo complicado que resulta el manejo de Internet con base en las direcciones IP, se utilizan los nombres de equipos con su correspondiente dominio.

Por ejemplo, es ms til referirse al servidor de la Asociacin de Ingenieros de Sistemas de Colombia como www.acis.edu.co que mediante la direccin IPv4: 201.19.45.6, y es en esta facilidad de manejo en la que el sistema DNS representa un papel fundamental.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 91. Rango de Direcciones IPv4

Fuente: Autor

La asignacin de nombres a direcciones IP es ciertamente la funcin ms conocida de los protocolos DNS. Por ejemplo, si la direccin IP del sitio FTP de time.co es 200.64.128.4, la mayora de la gente llega a este equipo especificando ftp.time.co y no la direccin IP. Adems de ser ms fcil de recordar, el nombre es ms fiable. La direccin numrica podra cambiar por muchas razones, sin que tenga que cambiar el nombre.

1. Estructura de DNS La estructura de la base de datos DNS es similar a la estructura de los sistemas LINUX-UNIX (Figura 92).
Figura 92. Base de datos DNS vs Sistema de Archivos LINUX-UNIX

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La base de datos o el sistema de archivos son dibujados como rboles invertidos con el nodo raz en la cima. Cada nodo en el rbol tiene una etiqueta textual, la cual identifica el nodo relativo a su padre. Por ejemplo, para el nodo bin la etiqueta seria \usr\bin. Segn la figura 92, la base de datos DNS se denomina el Espacio de Nombres de Dominio y cualquier subrbol de esta estructura se denomina Dominio. A su vez un dominio puede estar formado por subrboles que se denominan Subdominios y estos se componen de hosts (los cuales se ubican en las hojas del rbol). Cada nodo es tambin la raz de un nuevo subrbol del rbol general. Cada uno de estos subrboles representa una particin de la base de datos general del directorio en el sistema UNIX-LINUX o un dominio en el sistema DNS. Cada directorio o dominio puede ser dividido subsecuentemente en particiones llamadas Subdominios en DNS (como subdirectorios en LINUX). Cada dominio tiene un nombre nico al igual que cada directorio. En DNS el nombre de dominio es la secuencia de etiquetas desde el nodo raz del dominio al raz del rbol total, como puntos (.) separando las etiquetas (Figura 93).

Figura 93. Leyendo nombres en DNS y LINUX-UNIX

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

2. Componentes de un nombre de dominio

Un nombre de dominio usualmente consiste en dos o ms partes (tcnicamente etiquetas), separadas por puntos cuando se las escribe en forma de texto. Por ejemplo, www.LINUX-malaga.org.es o www.hp.com. A la etiqueta ubicada ms a la derecha se le llama dominio de nivel superior (del ingls Top Level Domain). Como org en www.LINUX-malaga.org o com en www.hp.com. La siguiente es una lista de los dominios de nivel superior registrados en Internet:
Figura 94. Lista de dominios de nivel superior Dominio .aero .biz .com .coop .info .museum .name .net .org .pro .gov .edu .mil .int .travel Area Industria del transporte areo Negocios Fines comerciales Cooperativas Informacin Museos Nombres de personas Infraestructura de red Organizaciones Profesionales Gobiernos y Entidades Pblicas Educacin Milicias (Ejrcito, Armada, Fuerza Area) Internacional, para organizaciones como la ONU Pginas de la industria de viajes Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Cada etiqueta a la izquierda especifica una subdivisin y corresponde a un subdominio. Ntese que subdominio expresa dependencia relativa, no dependencia absoluta. En teora, esta subdivisin puede tener hasta 127 niveles, y cada etiqueta contener hasta de 63 caracteres, pero restringido a que la longitud total del nombre del dominio no exceda los 255 caracteres, aunque en la prctica los dominios son casi siempre mucho ms cortos. Finalmente, la parte ms a la izquierda del dominio suele expresar el nombre de la mquina (en ingls hostname). El resto del nombre de dominio simplemente especifica la manera de crear una ruta lgica a la informacin requerida. Por ejemplo, el dominio es.Wikipedia.org tendra el nombre de la mquina "es", aunque en este caso no se refiere a una mquina fsica en particular.

3. Delegacin La responsabilidad del manejo de cada subdominio es distribuida a travs de diferentes organizaciones (Figura 95).
Figura 95. Administracin y delegacin de un dominio

Fuente: Autor

Por ejemplo, una organizacin llamada Educase administra el dominio edu (educativo) pero delega la responsabilidad del dominio Unad.edu a la Universidad Nacional Abierta y a Distancia.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La UNAD puede crear una nueva zona (una porcin del espacio de nombre administrada autnomamente) llamada cs. (Figura 96)
Figura 96. Zonas DNS

Fuente: Autor

La zona unad.edu es ahora independiente de la zona ms general edu, y contiene todos los nombres de dominio que finalizan en unad.edu. La zona edu, por otra parte contiene slo nombres de dominio que finalizan en edu pero no estn en zonas delegadas tales como unad.edu. Unad.edu puede adems ser dividido en en subdominios tales como cs.unad.edu, y algunos de estos subdominios pueden ser en si mismos zonas separadas si los administradores de unad.edu quieren delegar la responsabilidad de ellos a otras organizaciones. Si cs.unad.edu es una zona separada, la zona unad.edu no contiene nombres de dominio que finalicen en cs.unad.edu y de esta forma se mantienen nombres nico de manera distribuida. Los nombres de dominio son usados como ndices en la base de datos DNS, la cual contiene la informacin tanto de hosts como de subdominios. Se dice que un dominio contiene aquellos hosts y subdominios cuyos nombres de dominio estn dentro del subrbol del dominio.

4. Operacin DNS Para la operacin prctica del sistema DNS se utilizan dos componentes principales (Figura 97):

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Figura 97. Operacin DNS

Fuente: Autor

Los clientes DNS (full resolvers): un programa cliente DNS que se ejecuta en el computador del usuario (estacin) y que genera peticiones DNS de resolucin de nombres a un servidor de nombres de dominio (Por ejemplo: Qu direccin IP corresponde a nombre.dominio?); Los Servidores de Nombres de Dominio: que contestan las peticiones de los clientes, los servidores recursivos tienen la capacidad de reenviar la peticin a otro servidor (servidor DNS de otro dominio) si no disponen de la direccin solicitada.

Leccin 13: IPv6 El Direccionamiento del Futuro

IPv6 es la versin 6 del Protocolo de Internet (Internet Protocol), un estndar del nivel de red encargado de dirigir y encaminar los paquetes a travs de una red. IPv6 est destinado a sustituir al estndar IPv4, cuyo lmite en el nmero de direcciones de red admisibles est empezando a restringir el crecimiento de Internet y su uso, especialmente en China, India, y otros pases asiticos densamente poblados. Pero el nuevo estndar mejorar el servicio globalmente; por ejemplo, proporcionando a futuras celdas telefnicas y dispositivos mviles

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

con sus direcciones propias y permanentes. Al da de hoy se calcula que las dos terceras partes de las direcciones que ofrece IPv4 ya estn asignadas.127 Ipv4 soporta 4.294.967.296 (4,294 109) direcciones de red diferentes, un nmero inadecuado para dar una direccin a cada persona del planeta, y mucho menos para cada coche, telfono, PDA o tostadora; mientras que IPv6 soporta 340.282.366.920.938.463.463.374.607.431.768.211.456 (3,4 x 1038 340 sextillones) direcciones -- cerca de 4,3 x 1020 (430 trillones) direcciones por cada pulgada cuadrada (6.7 x 1017 670 mil billones direcciones/mm) de la superficie de la tierra.
Figura 98. IPv6 encapsulado en IPv4

Fuente: COULOURIS George, SISTEMAS DISTRIBUIDOS, Addison Wesley, Madrid, 2001, 3 Ed.

La adopcin de IPv6 ha sido frenada por la traduccin de direcciones de red (NAT / Network Address Translation), que alivia parcialmente el problema de la falta de direcciones IP. Pero NAT hace difcil o imposible el uso de algunas aplicaciones P2P, como son voz sobre IP (VoIP) y juegos multiusuario. Adems, NAT rompe con la idea originaria de Internet donde todos pueden conectarse con todos. Actualmente, el gran acelerador para la aplicacin de la tecnologa IPv6 es la capacidad de ofrecer nuevos servicios, como la movilidad, calidad del servicio (QoS / Quality of Service), privacidad, etc. El gobierno de los Estados Unidos ha ordenado el despliegue de IPv6 por todas sus agencias federales para el ao 2008.

IPv6 y el Sistema de Nombres de Dominio Las direcciones IPv6 se representan en el Sistema de Nombres de Dominio (DNS) mediante registros AAAA (tambin llamados registros de quad-A, por analoga con los registros A para IPv4)
127

http://es.wikipedia.org/w/index.php?title=Ipv6

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

El concepto de AAAA fue una de las dos propuestas al tiempo que la arquitectura IPv6 estaba siendo diseada. La otra propuesta utilizaba registros A6 y otras innovaciones como las etiquetas de cadena de bits (bit-string labels) y los registros DNAME. Mientras que la idea de AAAA es una simple generalizacin del DNS IPv4, la idea de A6 fue una revisin y puesta a punto del DNS para ser ms genrico, y de ah su complejidad. La RFC-3363128 recomienda utilizar registros AAAA hasta tanto se pruebe y estudie exhaustivamente el uso de registros A6.

Leccin 14: Introduccin a la Gestin Distribuida

La gestin distribuida definida por ISO (Internacional Organization for Standarization / Organizacin Internacional de Estndares)129, describe una arquitectura de gestin OSI (Open Systems Interconnection / Interconexin de Sistemas Abierto) cuya funcin es permitir supervisar (monitorear) y controlar una red de datos.
Figura 99. Gestin Distribuida

Fuente: Autor

128

http://rfc.net/rfc3363.html. Representing Internet Protocol version 6 (IPv6) Addresses in the Domain Name System (DNS). R. Bush, A. Durand, B. Fink, O. Gudmundsson, T. Hain. August 2002. 129 Normativas ISO/ITU-T: X.700/ISO 7498-4, X.701/ISO 10040.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La gestin distribuida se encuentra dividida en cinco categoras de servicios de administracin:

1. Administracin de fallos

Deteccin, diagnstico y correccin de los fallos de la red y de las condiciones de error. Incluye: Notificacin de fallos Sondeo peridico en busca de mensajes de error Establecimiento de alarmas Correccin de fallos (posiblemente en forma automtica).

Los usuarios esperan estar informados del estado de la red, incluyendo suspensin de procesos por actividades de mantenimiento programadas y no programadas. Cuando algo falla, es importante, tan rpido como sea posible: Determinar exactamente cual es el fallo Aislar el resto de la red del fallo para que contine funcionando sin interferencias Reconfigurar o modificar la red de manera que se minimice el impacto del fallo en las operaciones de la organizacin Reparar o sustituir los componentes que han fallado.

2. Administracin del Desempeo (Prestaciones)

Se define como la evaluacin (medida) del comportamiento de los elementos de la red. Para poder efectuar este anlisis es preciso mantener un histrico con datos estadsticos y de configuracin. La gerencia del desempeo permite: Obtener tasas de utilizacin y error de los dispositivos de la red Proporcionar un nivel constante de desempeo, asegurando que los dispositivos tengan suficiente capacidad.

Las redes modernas estn compuestas de muchos componentes que se comunican y comparten datos y recursos. La efectividad de una aplicacin

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

depende cada vez ms de unas prestaciones adecuadas de la red. Entre los interrogantes que pueden plantearse en este aspecto se encuentran: Cul es el nivel de utilizacin de la capacidad? Hay excesivo trfico? Las prestaciones se han reducido a niveles inaceptables? Hay cuellos de botella? Est aumentando el tiempo de respuesta?

Para esta gestin hay que identificar los valores relevantes a monitorizar de la red y definir los parmetros de medicin adecuados. Esto permite obtener estadsticas que ayuden a mantener las prestaciones adecuadas (eliminar cuellos de botella reconfigurando rutas o ampliando lneas, etc.)

3. Administracin de contabilidad

Determinacin de los costos asociados a la utilizacin de los recursos y administrar y regular dichos costos manteniendo un nivel de desempeo aceptable. En muchas organizaciones, diferentes divisiones, centros de gasto o proyectos, son facturados por el uso de los servicios de red. Aun cuando esto no ocurra, es necesario mantener informacin sobre el uso de los recursos de red por usuarios o tipos de usuarios: Determinados usuarios pueden estar abusando de sus privilegios de acceso y cargar la red afectando a los dems usuarios. Los usuarios pueden hacer un uso ineficiente de la red, y el gestor puede ayudar a cambiar procedimientos para aumentar la efectividad. Conocer en detalle las actividades de los usuarios es muy til para planificar el crecimiento adecuado de la red.

4. Administracin de seguridad

Implica las tareas relacionadas con el control de accesos no autorizados y daos tanto a los recursos de la red como a la informacin manejada (datos privados). La proteccin de la red incluye aspectos como:

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Mantenimiento y distribucin de claves cifradas y otras autorizaciones o controles de acceso a la informacin. Monitorizacin y control del acceso a los computadores de la red y a parte o toda la informacin de la informacin de gestin de los nodos de la red. Registros (logs): recoleccin, almacenamiento y procesamiento de registros de auditora y seguridad. Gestin (definir, lanzar/parar) las facilidades de registro.

5. Administracin de Configuracin

La gestin de configuracin se refiere al monitoreo o seguimiento de los cambios en el tiempo con respecto a la configuracin inicial de los dispositivos de la red y comprende una serie de facilidades mediante las cuales se realizan las siguientes funciones: Iniciacin y desactivacin de cualquier elemento de la red. Definicin o cambio de parmetros de configuracin. Recogida de informacin de estado actual de cualquier elemento.

Los modernos elementos fsicos y lgicos (por ejemplo, el controlador de dispositivos de un sistema operativo) de una red se pueden configurar para realizar diversas tareas. Un dispositivo se puede configurar por ejemplo para ser un nodo final, un router o ambas cosas. Una vez elegido el papel de cada dispositivo el gestor debe elegir el software adecuado y los atributos y valores para ese dispositivo. La configuracin tambin se encarga de inicializar y apagar adecuadamente parte de la red, tanto de manera manual como automtica. Los usuarios a veces quieren o necesitan estar informados acerca del estado de los componentes y recursos de la red. Por ello cuando se hacen cambios en la red, se les debe informar. Esta reconfiguracin puede ser debida a labores de rutina o necesidades del usuario. Antes de reconfigurar, el usuario quiere conocer como van a quedar las cosas (por ejemplo, si les cambia el sistema operativo de su mquina). Este modelo de administracin OSI posee una arquitectura del tipo

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

cliente-servidor y se utiliza ampliamente en los protocolos de gestin de red SNMP130 y CMIP131.

Leccin 15: Sistema de Gestin Distribuida

Un sistema de gestin distribuida es una coleccin de herramientas para monitorizacin y control compuesto por (Figura 100): Una nica interfaz de operador con un completo conjunto de comandos para realizar la mayora de las tareas de gestin. Est diseado para ver la red completa como una arquitectura unificada, con direcciones y etiquetas asignadas a cada punto y a los atributos especficos de cada elemento y enlace del sistema.
Figura 100. Sistema de Gestin Distribuida

Fuente: Autor

Un conjunto mnimo de equipamiento separado. La mayora del software y hardware de gestin est incorporado en el equipamiento existente. El software

130 Protocolo Simple de Gestin de Red (Simple Network Management Protocol). Ver informacin adicional en el glosario. 131 Protocolo de Gestin de Informacin Comn (Common Management Information Protocol)

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

utilizado en realizar tareas de gestin reside en los computadores y procesadores de comunicaciones (hubs, bridges132, routers, etc.) Como se puede apreciar en la figura 100, los elementos activos de la red envan regularmente informacin de estado al centro de control de red. Cada nodo contiene un conjunto de software relacionado con la gestin y llamado Entidad de Administracin de Red (EAR), el cual realiza las siguientes tareas: Recoge estadsticas de actividades de comunicaciones y actividades de red Almacena estadsticas localmente Responde a comandos del centro de control de red, como: o Enviar estadsticas al centro de control de red o Cambiar un parmetro (por ejemplo, un temporizador usado en un protocolo) o Proporcionar informacin de estado (por ejemplo, valores de parmetros, enlaces activos) o Generar trfico artificial para realizar pruebas.

Cada nodo con un EAR se suele denominar agente y al menos un nodo de la red es el nodo de gestin de red o gestor (manager). El nodo gestor, adems del EAR, incluye una coleccin de software denominada la Aplicacin de Administracin de Red (AAR), la cual realiza las siguientes tareas: Incluye una interfaz de operador para permitir a usuarios autorizados gestionar la red. Responde a comandos del usuario mostrando informacin y/o enviando comandos a los EAR de la red. Esta comunicacin se realiza mediante un protocolo de gestin de red a nivel de aplicacin de manera similar a cualquier otra aplicacin distribuida.

Normalmente por motivos de seguridad se suelen tener dos o ms nodos de gestin de red. Todos menos uno no hacen nada o slo recogen estadsticas. Si el principal falla, se usa uno de los otros.

Dispositivo hardware usado para conectar Redes de Area Local de manera que ellas puedan intercambiar datos. Pueden operar con redes que usan diferentes protocolos o sistemas de cableado.

132

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

1. Arquitectura del Software de Gestin Distribuida

La funcionalidad del software en un agente o gestor vara mucho dependiendo de la funcionalidad de la plataforma y sus capacidades de gestin. En general el software se puede dividir en tres categoras: Software de presentacin al usuario Software de gestin de red Software de soporte de gestin de red (gestin de base de datos y comunicaciones). La siguiente figura muestra una visin genrica de esta arquitectura software.
Figura 101. Arquitectura del Software de Gestin Distribuida

Fuente: Autor

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Software de presentacin al usuario: Proporciona la interaccin entre el usuario (gestor) y el software de gestin de red. Siempre reside en el gestor de red para monitorizar y controlar la red. A veces es til un software de este tipo en un agente para pruebas, depuracin y gestionar algunos parmetros de manera local. Una de las claves de este software es proporcionar una interfaz de usuario unificada. La interfaz debe ser la misma para cualquier nodo, independientemente del vendedor. Esto permite gestionar una red heterognea con un mnimo entrenamiento. Como desventaja puede presentarse sobrecarga de informacin. Una gran cantidad de informacin est disponible al gestor. Son necesarias herramientas de presentacin que organicen, resuman y simplifiquen esta informacin tanto como sea posible. Es preferible informacin grfica que textual o tabular. Software de Gestin de Red: Este software puede ser muy simple, como SNMP133 o complejo, como CMIP. El cuadro central de la figura 101 muestra una arquitectura compleja que refleja la arquitectura de OSI y de sistemas propietarios tpicos. El software tiene tres niveles: Aplicaciones: Proporciona servicios de inters de los usuarios, por ejemplo podran corresponder con las reas de OSI: fallos, costes, etc. Elementos: Las pocas aplicaciones son soportadas por un nmero mayor de elementos que implementas funciones ms primitivas y ms de propsito general, tal como generar alarmas o resumir estadsticas. Son elementos bsicos normalmente compartidos por varias aplicaciones. Esta organizacin sigue los principios tradicionales de diseo modular y reutilizacin de software. Servicio de transporte de datos: Es el protocolo utilizado para intercambiar informacin de gestin entre gestores y agentes y una interfaz de servicio para los elementos. Esta interfaz proporciona funciones muy primitivas como obtener una informacin, dar un valor a un parmetro o generar una notificacin.

Software de soporte de gestin de red: Para realizar sus funciones el software de gestin de red necesita acceder a los gestores y agentes remotos, as como a la base de informacin de gestin local (MIB / Management Information Base), la cual es una sencilla base de datos con informacin de los recursos del sistema distribuido.

133

http://www.ietf.org/rfc/rfc1351.txt

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

La MIB local de un agente contiene informacin sobre gestin, incluyendo informacin de la configuracin y comportamiento del nodo y parmetros que pueden utilizarse para controlar la operacin del nodo. La MIB de un gestor contiene la informacin de su agente y un resumen de la informacin de los agentes que controla. El mdulo de acceso ala MIB consiste en un software bsico de acceso a archivos que permite acceder a la MIB. Adems puede ser necesario que convierta la informacin del formato de la MIB local a un formato estandarizado utilizado por el sistema de gestin. La comunicacin con otros nodos (agentes y gestores) es soportada por la torre de protocolos, como pueden ser TCP/IP. Es decir, la arquitectura de comunicaciones soporta el protocolo de gestin, que est en el nivel de aplicacin.

2. Beneficios de la gestin de red distribuida La gestin distribuida mantiene la capacidad de un control centralizado, ofreciendo ventajas adicionales: El trfico de gestin de red disminuye. Ofrece mayor escalabilidad. Aadir capacidad de gestin consiste simplemente en instalar otra estacin de bajo coste en el lugar deseado. El uso de mltiples estaciones de gestin elimina el nico punto de fallo que existe en los esquemas centralizados.

A continuacin se presentan las principales herramientas de gestin (de dominio pblico) existentes en Internet134: Ipmonitor: http://www.ipmonitor.com/ LanSurveyor: http://www.neon.com/LSwin.html NimBus: http://www.nimsoft.com/netman/index.shtml N-Vision: http://www.n-able.com/products/N-vision/ InterMapper: http://www.intermapper.com/
134

http://www.slac.stanford.edu/~cottrell/tcom/nmtf-tools.html

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Netcrunch: http://www.adremsoft.com/netcrunch/ SolarWinds Orion: http://www.solarwinds.net/ Airwave: http://www.airwave.com/ (monitoreo de redes Wi-Fi) VitalNet: http://www.lucent.com/products/solution/0,,CTID+2020-STID+10439SOID+1335-LOCL+1,00.html redes hibridas (cableadas e inalmbricas) Whatsup: http://www.ipswitch.com/Products/WhatsUp/

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Actividades de Autoevaluacin de la UNIDAD


Practica: Descargar de Internet la herramienta freeware VBOrb (http://www.martinboth.de/vborb.html), con la cual usted puede escribir Clientes y Servidores CORBA Visual Basic. Los clientes CORBA pueden llamar mtodos de objetos remotos escritos en cualquier lenguaje y los Servidores CORBA pueden responder con mtodos de sus objetos locales. Por ejemplo, puede escribir su servidor en Java usando JavaORB (http://dog.team.free.fr/index_javaorb.html) y su cliente en Visual Basic usando VBOrb. Investigar acerca del Sistema Operativo PLAN 9, en desarrollo por los laboratorios Bell. Porqu se dice que ser el sucesor de UNIX?, En cules plataformas se ejecuta?, Como se denominan los recursos?, Qu protocolo de comunicacin utiliza?. Cmo es la estructura del sistema de archivos? (link: http://plan9.bell-labs.com/plan9/). Prctica: Usando Java, escriba una aplicacin para un prototipo de un sistema de consultas de opinin. Asmase que slo se va a encuestar un tema. Los entrevistados pueden responder s, no o ns/nc. Escriba una aplicacin servidora, que acepte los votos, guarde la cuenta (en memoria), y proporcione las cuentas actuales a aquellos que estn interesados. a. Escriba el archivo de interfaz primero. Debera proporcionar mtodos remotos para aceptar una respuesta a la encuesta, proporcionando los recuentos actuales (ejemplo: 10 s, 2 no, 5 ns/nc) slo cuando el cliente lo requiera. b. Disee e implemente un servidor que (i) exporte los mtodos remotos, y (ii) mantenga informacin de estado (las cuentas). c. Disee e implemente una aplicacin cliente que proporcione una interfaz de usuario para aceptar una respuesta y/o una peticin, y para interactuar con el servidor apropiadamente a travs de la invocacin de mtodos remotos. d. Pruebe la aplicacin ejecutando dos o ms clientes en mquinas diferentes (preferiblemente en plataformas diferentes). e. Entregue los listados de los archivos, que deben incluir los archivos fuente (el archivo de interfaz, los archivos del servidor y los archivos del cliente) y un archivo LEME que explique los contenidos y las interrelaciones de los archivos fuente, as como el procedimiento para ejecutar el trabajo. Investigar como operan los servicios de licenciamiento en plataformas LINUX y WINDOWS 2003 server. Practica: Utilizar la aplicacin MOUNT para poder acceder a un sistema de distribuido de archivos, en plataformas LINUX/UNIX. Investigar para que se usan los comandos LINUX/UNIX: showmount y umount, indicar los parmetros y ejemplos. Investigar los usos y aplicaciones de la especificacin WEBNFS. Investigar que caractersticas se han mejorado con las versiones NSFv3 y NSFv4.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Investigar acerca de los sistemas de archivos distribuidos Coda y Andrew File System (AFS): Con cules sistemas operativos trabajan, Capacidad, Estructura (volmenes, archivos), Operaciones de lectura/escritura, caching, Seguridad, etc. Realice un resumen acerca del sistema de Archivos LUSTRE. Con que Sistema Operativo Trabaja, quin lo desarroll y que tipo de licencia utiliza, que estructura de almacenamiento posee, que aplicaciones lo usan actualmente. Cual es el URL del Sitio principal de LUSTRE. Investigar que es la especificacin SAMBA y que papel cumple con el manejo de archivos en diferentes plataformas. En el contexto de las aplicaciones basadas en la Web, qu papel juega cada uno de los siguientes lenguajes/protocolos? HTML, MIME, XML, HTTP, CGI. Cuando un servidor HTTP enva el contenido de un documento a un cliente en el cuerpo de la respuesta, utiliza la lnea de cabecera Content-Lenght para especificar la longitud en bytes del cuerpo. Para los documentos estticos la longitud en bytes la proporciona el sistema de ficheros. Pero para pginas web generadas dinmicamente, tales como las generadas por un script CGI, la longitud debe ser determinada en tiempo de ejecucin. Para una pgina web generada dinmicamente, cmo puede saber el servidor web la longitud del contenido especificado en la cabecera Content-Lenght? Recuerde que las lneas de cabecera aparecen antes que el cuerpo en la respuesta HTTP. Investigue acerca de la funcin, principales caractersticas y usos de los protocolos BEEP, JABBER, IIOP y HTTPS. Mencione los protocolos asociados al sistema de nombre de dominio DNS. Elabore un dibujo de una organizacin representativa de estos protocolos en relacin con un sistema cliente, un servidor y un servidor de nombres de dominio. Bosqueje la secuencia de mensajes que se intercambian entre estos protocolos para obtener la direccin TCP/IP del servidor. Que numero de puerto utiliza el servicio DNS? Prctica: Utilice el comando traceroute en WINDOWS y LINUX para encontrar la ruta seguida por un equipo en Internet para alcanzar un destino determinado. Revise las principales opciones del comando. La operacin del comando requiere un procesamiento distribuido? Prctica: Realice un traceroute entre fuente y destino en el mismo continente y a tres horas diferentes del da. a. Encuentre la media y la desviacin estndar de los retardos en cada una de las tres horas. b. Encuentre el nmero de routers en el recorrido en cada una de las tres horas. Cambian los recorridos durante cualquiera de las horas? c. Intente identificar el nmero de redes ISP por las que pasan los paquetes Traceroute desde la fuente al destino. Los routers con nombres similares y con direcciones IP semejantes deben ser considerados como parte del mismo ISP. En tus experimentos, se producen retardos grandes en las interfaces colegas entre ISP adyacentes?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

d. Repita lo anterior para una fuente y un destino en diferentes continentes. Comparar, los resultados intracontinente e intercontinentes. Investigue en que consiste el sistema de directorios X.500 y en relacin con dicho sistema explique con ayuda de ejemplos el significado de los siguientes trminos: a. rbol de informacin de directorio b. Nombre distinguido relativo c. Nombre distinguido d. Seudnimo A partir de la siguiente lista de tipos de servidores DNS (Bind, PowerDNS, MaraDNS, djbdns, pdnsd, MyDns) seleccione tres (3) y realice un cuadro comparativo con cuatro (4) caractersticas representativas. Cal es la lista de dominios por distribucin geogrfica?. Qu significa la sigla ccTLD?. Cules son los dominios geogrficos asignados pero sin uso, los dominios retirados y los dominios reservados?. (Ayuda: http://es.wikipedia.org/wiki/CcTLD). Prctica: (en grupos) Instale un servidor BIND en LINUX. Use direcciones ejemplo y documente el proceso. Instale el servicio DNS en la plataforma WINDOWS 2003 Server. Use direcciones ejemplo y documente el proceso. Indique como es el proceso para registrar un dominio en Internet desde Colombia. Documente como hara desde nuestro pas para registrar el dominio www.diezmicosenunpalo.org. Investigue: Qu funcin tienen las organizaciones ICANN (http://www.icann.org/) y IANA(http://www.iana.org/) en la asignacin de nombres de dominios y nmeros en Internet?. Qu diferencias existen entre dominios genricos y dominios territoriales?. Cuales son los dominios genricos patrocinados y los dominios genricos no patrocinados?. Explique el concepto de registrador de dominios (http://es.wikipedia.org/wiki/Registrador_de_dominios) y los principales registradores acreditados en el mundo (http://www.icann.org/registrars/accreditedlist.html) Ayuda: Utilice wikipedia (http://es.wikipedia.org) Investigue acerca de Internet II (I2), porqu se caracteriza con respecto al direccionamiento y al sistema de nombres de dominios?. Lea el RFC-3531 (Un mtodo flexible para Administrar la Asignacin de Bits de un bloque de direcciones IPv6) del sitio (http://www.rfc-es.org/rfc/rfc3531-es.txt). Realice un resumen y elabore un ejemplo descriptivo. Investigue en qu se diferencian una direccin MAC y una direccin de LOOPBACK?. Qu formato emplean y para qu se utilizan?

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

Investigue acerca del uso del comando NSLOOKUP (Hace consultas interactivas a Servidores que corren un DNS). Qu formatos y opciones utiliza (indique ejemplos representativos)? Qu tipo de informacin se puede recopilar acerca de un Host en la red? Utilice NSLOOKUP para encontrar un servidor Web que tenga mltiples direcciones IP. Tiene el servidor web de la UNAD mltiples direcciones IP? Realice un paralelo entre los protocolos de gestin de red SNMP y CMIP. Realice un paralelo entre las siguientes herramientas de gestin distribuida (para redes heterogneas) basadas en el protocolo SNMP: OpenView de Hewlett-Packard, Spectrum de Aprisma, Solstice de Sun. Investigue acerca de la herramienta de monitoreo WAN PingER (funcin, instalacin, operacin) (Ayuda: http://www-iepm.slac.stanford.edu/pinger/) Practica: Disear una herramienta que permita detectar la presencia de direcciones IPs duplicadas en una red. (Tenga en cuenta las direcciones fsicas de las tarjetas de red Direcciones MAC). Practica: Disear un software que mediante una interfaz de tipo grfico haga uso de la utilidad ping para determinar la presencia de un equipo IP en la red y despliegue la informacin de respuesta. Utilice principalmente las plataformas LINUX y WINDOWS. Investigue acerca de la funcin de los demonios de monitoreo presentes en los sistemas UNIX-LINUX: inetd, syslogd Investigue cules son los comandos, utilidades o servicios utilizados en las plataformas LINUX, WINDOWS 2003 y UNIX para realizar las siguientes funciones de monitoreo: Determinar la carga/utilizacin de la CPU Indicar el nmero de procesos en ejecucin y usuarios activos Indicar las estadsticas de trfico de las tarjetas de red Indicar el tamao de las particiones / filesystems Mostrar los logs (bitcoras) de errores y avisos del sistema Practica: Instalar y configurar una herramienta de monitoreo de red basada en SNMP. Herramienta de monitoreo NetLogger para entornos LINUX (http://wwwdidc.lbl.gov/NetLogger) Nota: Netlogger reune informacin a partir de los agentes de monitoreo y escribe la informacin (eventos) en un formato estndar apropiado para un procesamiento posterior. Los agentes de monitoreo se ejecutan en cada uno de los recursos (hosts) y transmiten la informacin al proceso netlogd que se ejecuta en el equipo de administracin. En este equipo, mediante la utilidad nlv se pude ver el registro de eventos en tiempo real. Netlogger maneja APIs en c, c++, Java, phyton.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

GLOSARIO DE ACRNIMOS

AAR AFS API ASP B2B BSD CMIP

Aplicacin de Administracin de Red Sistema de Archivos Andrew (Andrew File System) Interfaz de Programacin de Aplicaciones (Application Program Interfase) Servidor de Pginas Activo (Active Server Pages) Negocio a Negocio (Business to Business) Distribucin de Software Berkeley (Berkeley Software Distribution) Protocolo de Gestin de Informacin Comn (Common Management Information Protocol) Modelo de Objetos Componentes (Component Object Model)

COM

CORBA Arquitectura de Mediador de Peticiones a Objetos Comunes (Common Object Request Broquer Architecture) DCOM Modelo Distribuido de Objetos Componentes (Distributed Component Object Model) Estandar de Encripcin de Datos (Data Encryption Standard) Sistema de Nombres de Dominio (Domain Name System) Denegacin del Servicio (Denial of Service) Entidad de Administracin de Red Intercambio Electrnico de Datos (Electronic Data Interchange) Protocolo de Transferencia de Archivos (File Transfer Protocol) Paquete General de Servicios Radiales (General Packet Radio Service) Sistema Global para las comunicaciones Mviles (Global System Mobile) Interfaz Grfica de Usuario (Graphical User Interface)

DES DNS DoS EAR EDI FTP GPRS GSM GUI

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

HTML HTTP HTTPS

Lenguaje de Marcacin de Hipertexto (Hiper-Text Markup Language) Protocolo de Transferencia de Hipertexto (Hiper-Text Transfer Protocol) Protocolo de Transferencia de Hipertexto Seguro (Secure Hiper-Text Transfer Protocol) Autoridad para Nmeros Asignados de Internet (Internet Assigned Numbers Authority) Corporacin Internet para Nombres y Nmeros Asignados (Internet Corporation for Assigned Names and Numbers) Algoritmo Internacional de Encriptamiento de Datos (International Data Encryption Algorithm) Lenguaje de Definicin de Interfaz (Interfaz Definition Language) Instituto de Ingenieros Electricos y Electronicos (Institute of Electrical and Electronics Engineers) Grupo de Trabajo en Ingeniera de Internet (Internet Engineering Task Force) Protocolo de Internet (Internet Protocol) Organizacin Internacional de Estndares (Internacional Standard Organization) Proveedor de Servicios de Internet (Internet Service Provider) Edicin Empresarial del paquete Java (Java 2 Enterprice Edition) Conectividad Java de Base de Datos (Jave DataBase Connectivity) Kit de Desarrollo de Java (Java Development Kit) Mquina Virtual de Java (Java Virtual Machine) Red de rea Local (Local Area Network) Control de Acceso al Medio (Media Access Control) Base de datos de Informacin de Gestin (Management Information Base) Instituto Tecnolgico de Massachusetts (Massachusetts Institute of Technology) Middleware Orientado a Mensajes / (Message Oriented Middleware) Traduccin de Direcciones de Red (Network Address Translation)

IANA

ICANN

IDEA

IDL IEEE

IETF IP ISO

ISP J2EE JDBC JDK JVM LAN MAC MIB MIT

MOM NAT

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

NFS ODBC OMA OMG ORB OSI P2P PDA PGP PIN PNG QoS RFC RMI RPC RSA SDP SLP SMTP SNMP SOAP SQL SSDP

Sistema de Archivos de Red (Network File System) Conectividad Abierta de Base de Datos (Open DataBase Connectivity) Arquitectura de Administracin de Objetos (Object Management Architecture) Grupo de Administracin Abierto (Open Management Group) Mediador de Peticiones a Objetos (Object Request Broker) Interconexin de Sistemas Abiertos (Open Systems Interconnection) Igual a Igual (Peer to Peer) Asistente Personal Digital (Personal Digital Assistant) Privacidad Bastante Buena (Pretty Good Privacy) Nmero de Identificacin Personal (Personal Identification Number) Grficos de Red Portable (Portable Network Graphics) Calidad del Servicio Solicitudes por Comentarios (Request for Comments) Invocacin de Mtodo Remoto (Remote Method Invocation) Llamada a Procedimiento Remoto (Remote Procedure Call) Algoritmo Rivest-Shamir-Adleman Protocolo de Descripcin de Sesin (Session Description Protocol) Protocolo de Localizacin de Servicios (Service Location Protocol) Protocolo Simple de Transferencia de Correo (Simple Mail Transfer Protocol) Protocolo Simple de Gestin de Red (Simple Network Management Protocol) Protocolo Simple de Acceso a Objeto (Simple Access Object Protocol) Lenguaje de Consulta Estructurado (Structured Query Language) Protocolo Simple de Descubrimiento de Servicio (Simple Service Discovery Protocol) Imagen Particular del Sistema (Single System Image) Protocolo de Control de Transmisin (Transmisin Control Protocol)

SSI TCP

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

TFTP UDDI

Protocolo de Transferencia de Archivos Trivial (Trivial File Transfer Protocol) Descripcin Universal, Descubrimiento e Integracin (Universal Description, Discovery and Integration) Protocolo de Datagrama de Usuario (User Datagram Protocol) Identificador nico de Archivo (Unique File IDentifier) Sistema de Telecomunicaciones Mviles Universal (Universal Mobile Telecommunications System) Enchufe y Ejecute Universal (Universal Plug and Play) Sistema Ininterrumpible de Energia (Uninterrumpible Power System) Localizador Uniforme de Recursos (Uniform Resource Locator) Sistema Virtual de Archivos (Virtual File System) Entorno de Hogar Virtual (Virtual Home Environment) Consorcio World Wide Web (World Wide Web Consortium) Red de rea Extensa (Wide Area Network) Red de rea Local Inalmbrica (Wireless Local Area Network) Lenguaje de Descripcin de Servicios Web (Web Services Description Language) Lenguaje de Flujo de Servicios Web (Web Services Flow Language) Lenguaje de Marcacin Extensible (eXtensible Markup Language)

UDP UFID UMTS

UPnP UPS URL VFS VHE W3C WAN WLAN WSDL

WSFL XML

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

GLOSARIO DE TERMINOS

Alarma

Indicador. Seal asincrnica generada por un dispositivo o software para indicar la ocurrencia de un evento previamente definido grave. (del ingls Application Programming Interface / Interfaz de Programacin de Aplicaciones). Conjunto de especificaciones de comunicacin entre componentes software. Representa un mtodo para conseguir abstraccin en la programacin, generalmente (aunque no necesariamente) entre los niveles o capas inferiores y los superiores del software. Uno de los principales propsitos de una API consiste en proporcionar un conjunto de funciones de uso general, por ejemplo, para dibujar ventanas o iconos en la pantalla. De esta forma, los programadores se benefician de las ventajas de la API haciendo uso de su funcionalidad, evitndose el trabajo de programar todo desde el principio. Las APIs asimismo son abstractas: el software que proporciona una cierta API generalmente es llamado la implementacin de esa API. (del ingls Active Server Pages / Servidor de Pginas Activo). Es una tecnologa del lado servidor de Microsoft para pginas web generadas dinmicamente, que ha sido comercializada como un anexo a Internet Information Server (IIS). ASP ha pasado por cuatro iteraciones mayores, ASP 1.0 (distribuido con IIS 3.0), ASP 2.0 (distribuido con IIS 4.0), ASP 3.0 (distribuido con IIS 5.0) y ASP.NET (parte de la plataforma .NET de Microsoft). Las versiones pre-.NET se denominan actualmente (desde 2002) como ASP clsico. Porcin de la red que administra el trfico de alto volumen. El backbone puede conectar varias sedes o edificios de una organizacin, as como las pequeas redes LAN que posea. Tcnica consistente en duplicar datos de otros originales, con la propiedad de que los datos originales son costosos de acceder, normalmente en tiempo, respecto a la copia en el cach. Cuando se accede por primera vez a un dato, se hace una copia en el cach; los accesos siguientes se realizan a dicha copia, haciendo que el tiempo de acceso aparente al dato sea menor. Computador que accede a recursos y servicios brindados por otro llamado Servidor, generalmente en forma remota. Tambin llamado modelo cliente-servidor, es una forma de dividir y especializar programas y equipos de cmputo a fin de que la tarea que cada

API

ASP

Backbone

Caching

Cliente

Cliente

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS /Servidor uno de ellos realizada se efecte con la mayor eficiencia, y permita simplificarlas. En esta arquitectura la capacidad de proceso est repartida entre el servidor y los clientes. Racimo. Se aplica a los conjuntos o conglomerados de computadores construidos utilizando componentes de hardware comunes y, la mayor parte de las veces, software libre. Ellos juegan hoy en da un papel importante en la solucin de problemas de las ciencias, las ingenieras y del comercio moderno. Es la rama de las Ciencias Computacionales que estudia la ejecucin de un algoritmo por medio de varios sitios, dispersos geogrficamente, que comparten recursos. (del ingls Grid computing, computacin en grilla o informtica en rejilla). Es un nuevo modelo para resolver problemas de computacin masiva utilizando un gran nmero de computadores organizados en racimos incrustados en una infraestructura de telecomunicaciones distribuida. (del ingls Firewall). Elemento de hardware o software utilizado en una red de computadores para prevenir algunos tipos de comunicaciones prohibidos segn las polticas de red que se hayan definido en funcin de las necesidades de la organizacin responsable de la red. Fragmento de paquete que es enviado con la suficiente informacin como para que la red pueda simplemente encaminar el fragmento hacia el computador receptor, de manera independiente a los fragmentos restantes. Esto puede provocar una recomposicin desordenada o incompleta del paquete en el computador destino. La estructura de un datagrama es: cabecera y datos. Centro de Datos. Ubicacin donde se concentran todos los recursos necesarios para el procesamiento de informacin de una organizacin. Dichos recursos consisten esencialmente en unas dependencias debidamente acondicionadas, computadores y redes de comunicaciones. (del ingls Distributed Component Object Model / Modelo de Objetos Componentes distribuidos). Es la propuesta de Microsoft hacia un modelo de componentes que soporte la reutilizacin y facilite la evolucin de las aplicaciones existentes, enfocada por supuesto a la plataforma WINDOWS. (del ingls Denial of Service / Denegacion del Servicio). Es un ataque a un sistema de ordenadores o red que causa que un servicio o recurso sea innaccesible a los usuarios legtimos. Normalmente provoca la prdida de la conectividad de la red por el consumo del ancho de banda de la red de la vctima o sobrecarga de los recursos computacionales del sistema de la vctima. Se genera mediante la saturacin de los puertos con flujo de informacin, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le dice "denegacin", pues hace que el servidor no de abasto a la cantidad de usuarios. Esta tcnica es usada por los llamados crackers para dejar fuera de servicio a servidores objetivo.

Cluster

Computacin distribuida

Computacin en malla

Cortafuegos

Datagrama

Datacenter

DCOM

DoS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Enrutador (del ingls Router). Dispositivo hardware o software de interconexin de redes de computadores que opera en la capa tres (nivel de red) del modelo OSI. Este dispositivo interconecta segmentos de red o redes enteras. Hace pasar paquetes de datos entre redes tomando como base la informacin de la capa de red. El router toma decisiones lgicas con respecto a la mejor ruta para el envo de datos a travs de una red interconectada y luego dirige los paquetes hacia el segmento y el puerto de salida adecuados. (del ingls Farm Server). Grupo de servidores, normalmente mantenidos por una empresa o universidad para ejecutar tareas que van ms all de la capacidad de una sla mquina corriente, como alternativa, generalmente ms econmica, a un supercomputador. Tambin hace posible la distribucin de tareas, de forma que el sistema gana cierta tolerancia a fallos, ya que si uno de los servidores se estropea, el sistema contina trabajando, notando nicamente una prdida de rendimiento. (del ingls Graphical User Interface, Interfaz grfica de usuario). Mtodo para facilitar la interaccin del usuario con el computador a travs de la utilizacin de un conjunto de imgenes y objetos pictricos (iconos, ventanas, etc.) adems de texto. Surge como evolucin de la lnea de comandos de los primeros sistemas operativos y es pieza fundamental en un entorno grfico. (del Ingls Thread). Es un proceso concurrente que es parte de un proceso mayor o de un programa. En un sistema operativo multitarea, un simple programa puede tener varios hilos, todos ejecutndose al mismo tiempo. Ejemplo: Una parte de un programa puede estar haciendo un clculo mientras que otra parte est dibujando un grfico. Ver Proceso. Anfitrin. Mquina conectada a una red de computadores y que tiene un nombre de equipo (Hostname). Puede ser un computador, un servidor de archivos, un dispositivo de almacenamiento por red, una mquina de fax, impresora, etc. Este nombre ayuda al administrador de la red a identificar las mquinas sin tener que memorizar una direccin IP para cada una de ellas. Concentrador. Equipo de redes que permite conectar entre s otros equipos y retransmite los paquetes que recibe desde cualquiera de ellos a todos los dems. Los hubs han dejado de ser utilizados, debido al gran nivel de colisiones y trfico de red que propician. Punto, rea, o la superficie a lo largo de la cual dos cosas de naturaleza distinta convergen. Por extensin, se denomina interfaz a cualquier medio que permita la interconexin de dos procesos diferenciados con un nico propsito comn. Se conoce como Interfaz Fsica a los medios utilizados para la conexin de un computador con el medio de transporte de la red. Esto puede ser un mdem, una tarjeta de red, un puerto serie, enlace infrarrojo, una conexin inalmbrica, etc. Se utiliza esta expresin para no referirse a ningn medio o tipo de conexin en concreto, as se refiere al dispositivo por el cual se accede a la red de forma genrica.

Granja de Servidores

GUI

Hilo

Host

Hub

Interfaz

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS IP (del ingls Internet Protocol, Protocolo de Internet). Protocolo no orientado a conexin usado tanto por el origen como por el destino para la comunicacin de datos a travs de una red de paquetes conmutados. Los datos en una red basada en IP son enviados en bloques conocidos como paquetes o datagramas (en el protocolo IP estos trminos se suelen usar indistintamente). En particular, en IP no se necesita ninguna configuracin antes de que un equipo intente enviar paquetes a otro con el que no se haba comunicado antes. Versin 4 del Protocolo IP (Internet Protocol). Esta fue la primera versin del protocolo que se implement extensamente, y forma la base de Internet. IPv4 32 usa direcciones de 32 bits, limitndola a 2 = 4.294.967.296 direcciones nicas, muchas de las cuales estn dedicadas a redes locales (LANs). Por el crecimiento enorme que ha tenido del Internet (mucho ms de lo que esperaba, cuando se dise IPv4), combinado con el hecho de que hay desperdicio de direcciones en muchos casos, ya hace varios aos se vio que escaseaban las direcciones IPv4. Esta limitacin ayud a estimular el impulso hacia IPv6, que esta actualmente en las primeras fases de implementacin, y se espera que termine reemplazando a IPv4. Lenguaje de programacin orientado a objetos desarrollado por James Gosling y sus compaeros de Sun Microsystems al inicio de la dcada de 1990. A diferencia de los lenguajes de programacin convencionales, que generalmente estn diseados para ser compilados a cdigo nativo, Java es compilado en un bytecode que es ejecutado (usando normalmente un compilador JIT), por una mquina virtual Java. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos mucho ms simple y elimina herramientas de bajo nivel como punteros. Kerberos es un protocolo de autentificacin de red. Est diseado para suministrar una potente autentificacin para aplicaciones cliente/servidor usando criptografa secret-key. Una versin gratuita de este protocolo est disponible en el Massachusetts Institute of Technology. http://web.mit.edu/kerberos/ Kernel (del Ingls Ncleo). En informtica, el ncleo (tambin conocido en espaol con el anglicismo kernel, de races germnicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware del computador o en forma ms bsica, es el encargado de gestionar recursos, a travs de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el ncleo tambin se encarga de decidir qu programa puede hacer uso de un dispositivo de hardware y durante cuanto tiempo, lo que se conoce como multiplexado.

IPv4

Java

Kerberos

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS LAN (del ingls Local Area Network, Red de rea Local). Una red local es la interconexin de varios computadores y perifricos. Su extensin esta limitada fsicamente a un edificio o a un entorno de unos pocos kilmetros. Su aplicacin ms extendida es la interconexin de computadores personales y estaciones de trabajo en oficinas, fbricas, etc; para compartir recursos e intercambiar datos y aplicaciones. En definitiva, permite que dos o ms mquinas se comuniquen. El trmino red local incluye tanto el hardware como el software necesario para la interconexin de los distintos dispositivos y el tratamiento de la informacin. Denominacin de un sistema operativo y el nombre de un ncleo. Es uno de los paradigmas del desarrollo de software libre (y de cdigo abierto), donde el cdigo fuente est disponible pblicamente y cualquier persona, con los conocimientos informticos adecuados, puede libremente estudiarlo, usarlo, modificarlo y redistribuirlo. Ordenador central. Es un computador grande, potente y costoso usado principalmente por una gran compaa para el procesamiento de una gran cantidad de datos; por ejemplo, para el procesamiento de transacciones bancarias. (del ingls Management Information Base, Base de informacin de administracin). Es un esquema o un modelo que contiene la orden jerrquica de todos los objetos manejados en un sistema distribuido. Cada objeto manejado en un MIB tiene un identificador nico. El identificador incluye el tipo (tal como contador, secuencia o direccin), el nivel de acceso (tal como read/write), restricciones del tamao, y la informacin del tipo de objeto. Lgica de la Mediacin. Capa de programas que oculta a los desarrolladores de aplicaciones distribuidas los detalles de la plataforma fsica incluyendo su heterogeneidad. Gracias a ella, el entorno de ejecucin aparenta ser un sistema uniforme. Los desarrolladores pueden concentrarse en los aspectos relevantes de la aplicacin, la cual puede ser implantada en cualquier plataforma sobre la que se instale la lgica de mediacin. (del ingls Object Management Group, Grupo de Gestin de Objetos). Es un consorcio dedicado al cuidado y el establecimiento de diversos estndares de tecnologas orientadas a objetos, tales como UML, XMI, CORBA. Adems es una organizacin NO lucrativa que promueve el uso de tecnologa orientada a objetos mediante guas y especificaciones para tecnologas orientadas a objetos. El grupo est formado por compaas y organizaciones de software como lo son: Hewlett-Packard (HP), IBM, Sun Microsystems, Apple Computer. (http://www.omg.org/) (del ingls Object Request Broker, Mediador de Peticiones a Objetos). Es el nombre que recibe una capa de software (tambin llamada middleware) que permite a los objetos realizar llamadas a mtodos situados en mquinas remotas, a travs de una red. Maneja la transferencia de estructuras de datos, de manera que sean compatibles entre los dos objetos.

LINUX

Mainframe

MIB

Middleware

OMG

ORB

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS P2P (del ingls Peer-to-Peer, igual a igual). Es una red que no tiene clientes y servidores fijos, sino una serie de nodos que se comportan simultneamente como clientes y como servidores de los dems nodos de la red. Es un concepto manejado por el sistema operativo que consiste en el conjunto formado por: (a) Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador, (b) Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa, (c) Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. En los sistemas operativos multihilo, un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Adems en estos sistemas es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. Hace referencia a un programa o dispositivo que realiza una accin en representacin de otro. La finalidad ms habitual es la del servidor proxy, que sirve para permitir el acceso a Internet a todos los equipos de una organizacin cuando slo se puede disponer de un nico equipo conectado, esto es, una nica direccin IP. (del ingls Request For Comments, Solicitud para comentarios). Es un conjunto de notas tcnicas y organizativas donde se describen los estndares o recomendaciones de Internet. En el caso de la informtica, estn hechos para hacer compatibles los programas entre s y que se pueda usar diferente software para la misma funcin. Definen protocolos y lenguajes, se garantiza la interoperabilidad entre sistemas si ambos cumplen el mismo RFC. (ver http://rfc.net/rfc-index.html) (del ingls Remote Method Invocation / Invocacin Remota de Mtodos). Es una Interfaz para Programacin de Aplicaciones que permite que un objeto que reside en una mquina virtual de Java pueda invocar un mtodo de un objeto servidor que reside en otra mquina virtual. Se orienta especficamente a aplicaciones escritas totalmente en Java. (del ingls Remote Procedure Call, Llamada a Procedimiento Remoto). Es un protocolo que permite a un programa de computador ejecutar cdigo en otra mquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo fue propuesto inicialmente por Sun Microsystems como un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tena que estar pendiente de las comunicaciones, estando stas encapsuladas dentro de las RPC. Es una variable especial protegida (o tipo abstracto de datos) que constituye el mtodo clsico para restringir o permitir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento) en un entorno de procesamiento distribuido.

Proceso

Proxy

RFC

RMI

RPC

Semforo

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS Servidor Computador en el que se ejecuta un programa que realiza alguna tarea en beneficio de otras aplicaciones llamadas clientes, tanto si se trata de un computador central (mainframe), un minicomputador, un computador personal, un PDA o un sistema integrado; sin embargo, hay computadores destinados nicamente a proveer los servicios de estos programas. Tcnica que permite operar simultneamente dos aplicaciones de ya sea mediante secciones crticas, semforos o paso de mensajes, para garantizar la exclusin mutua en las zonas del cdigo en las que sea necesario. (del ingls Simple Network Management Protocol, Protocolo Simple de administracin de red). Es un protocolo de la capa de aplicacin que facilita el intercambio de informacin de administracin entre dispositivos de red. Es parte de la suite de protocolos TCP/IP. SNMP permite a los administradores supervisar el desempeo de la red, buscar y resolver sus problemas, y planear su crecimiento. Mecanismo de comunicacin entre procesos. Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en computadores distintos) pueden intercambiarse cualquier flujo de datos, generalmente de manera fiable y ordenada. Un socket queda definido por una direccin IP, un protocolo y un nmero de puerto. Ejemplo: ftp://201.45.23.45:21 Mensajes no solicitados, habitualmente de tipo publicitario, enviados en cantidades masivas. Aunque se puede hacer por distintas vas, la ms utilizada entre el pblico en general es la basada en el correo electrnico. Otras tecnologas de internet que han sido objeto de spam incluyen grupos de noticias usenet, motores de bsqueda, wikis y blogs. El spam tambin puede tener como objetivo los telfonos mviles (a travs de mensajes de texto) y los sistemas de mensajera instantnea. Conmutador. Dispositivo de interconexin de redes de computadores que opera en la capa 2 (nivel de enlace de datos) del modelo OSI (Open Systems Interconection). Un switch interconecta dos o ms segmentos de red, pasando datos de un segmento a otro, de acuerdo con la direccin de destino de los datagramas en la red. Un switch en el centro de una red en estrella. Los switches se utilizan cuando se desea conectar mltiples redes, fusionndolas en una sola. Dado que funcionan como un filtro en la red, mejoran el rendimiento y la seguridad de las LANs. (del ingls Transmission Control Protocol, Protocolo de Control de Transmisin). Protocolo que fue creado entre los aos 1973 - 1974 (por Vint Cerf y Robert Kahn) es uno de los protocolos fundamentales en Internet. Muchos programas dentro de una red de datos compuesta por computadores pueden usar TCP para crear conexiones entre ellos a travs de las cuales enviarse datos. El protocolo garantiza que los datos sern entregados en su destino sin errores y en el mismo orden en que se transmitieron. Tambin proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina, a travs del concepto de puerto.

Sincronizacin

SNMP

Socket

Spam

Switch

TCP

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS UDP (del Ingls User Datagram Protocol, protocolo de datagrama de usuario). Protocolo del nivel de transporte basado en el intercambio de datagramas. Permite el envo de datagramas a travs de la red sin que se haya establecido previamente una conexin, ya que el propio datagrama incorpora suficiente informacin de direccionamiento en su cabecera. Tampoco tiene confirmacin, ni control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco sabemos si ha llegado correctamente, ya que no hay confirmacin de entrega o de recepcin. Su uso principal es para protocolos como DHCP, BOOTP, DNS y dems protocolos en los que el intercambio de paquetes de la conexin/desconexin son mayores, o no son rentables con respecto a la informacin transmitida, as como para la transmisin de audio y vdeo en tiempo real, donde no es posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos. Sistema operativo portable, multitarea y multiusuario. Desde el punto de vista tcnico, UNIX se refiere a una familia de sistemas operativos que comparten unos criterios de diseo e interoperabilidad en comn. Esta familia incluye ms de 100 sistemas operativos desarrollados a lo largo de 20 aos. (del Ingls Uniform Resource Locator, localizador uniforme de recurso). Es una secuencia de caracteres, de acuerdo a un formato estndar, que se usa para nombrar recursos, como documentos e imgenes en Internet, por su localizacin. El URL es la cadena de caracteres con la cual se asigna una direccin nica a cada uno de los recursos de informacin disponibles en la Internet. Existe un URL nico para cada pgina de cada uno de los documentos de la World Wide Web. Ejemplo: http://es.wikipedia.org:80/wiki/data WAN (del ingls Wide Area Network, Red de rea amplia). Tipo de red de computadores capaz de cubrir distancias desde unos 100 hasta unos 1000 km, proveyendo de servicio a un pas o un continente. Un ejemplo de este tipo de redes sera RedIRIS, Internet o cualquier red en la cual no estn en un mismo edificio todos sus miembros (sobre la distancia hay discusin posible). Muchas WAN son construidas por y para una organizacin o empresa particular y son de uso privado, otras son construidas por los proveedores de Internet (ISP) para proveer de conexin a sus clientes. Nombre de una familia de sistemas operativos privativos desarrollados por la empresa de software Microsoft Corporation. Todos ellos tienen en comn el estar basados en una interfaz grfica de usuario apoyada en el paradigma de ventanas (de ah su nombre en ingls).

UNIX

URL

WINDOWS

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

FUENTES DOCUMENTALES

LIBROS SISTEMAS DISTRIBUIDOS Conceptos y Diseo. COULOURIS George, DOLLIMORE Jean y KINDBERG Tim, Pearson Addison Wesley, Madrid, 2001, 3 Ed. SISTEMAS OPERATIVOS MODERNOS, TANENBAUM, Andrew S., Prentice Hall, Madrid, 2003, 2 Ed. REDES DE COMPUTADORES, TANENBAUM, Andrew S., Prentice Hall, Madrid, 2003, 4 Ed. REDES DE COMPUTADORES Un enfoque descendente basado en Internet. KUROSE James F. y ROSS Keith W., Pearson Addison Wesley, Madrid, 2004, 2 Ed. COMUNICACIONES Y REDES DE COMPUTADORES. STALLINGS, William, PrenticeHall, Madrid, 2000. 2 Ed. COMUNICACIN DE DATOS, REDES DE COMPUTADORES Y SISTEMAS ABIERTOS, HALSALL, Fred, Pearson Addison Wesley, Mxico, 1998, 4 Ed. DISTRIBUTED COMPUTING: Fundamentals, Simulations and Advanced Topics, ATTIYA, Hagit y WELCH, Jennifer, John Wiley & Sons, New Jersey, 2004. MIDDLEWARE NETWORKS: Concept, Design and Deployment of Internet Infrastructure, LERNER, Michach y Vanecek George, Kluwer Academic Publishers, New York, 2002. TOOLS AND ENVIRONTMENTS FOR PARALLEL AND DISTRIBUTED COMPUTING, HARIRI, Salim y PARASAR, Manish, John Wiley & Sons, New Jersey, 2004 ADVANCED COMPUTER ARCHITECTURE AND PARALLEL PROCESSING, ELREWINI, Hesham y ADB-EL-BARR, Mostafa, John Wiley & Sons, New Jersey, 2005 FUNDAMENTALS OF DISTRIBUTED OBJECT SYSTEMS: The CORBA Perspective, TARI, Zahir y BUKHRES, Omran, John Wiley & Sons, New Jersey, 2001 DEVELOPING SECURE DISTRIBUTED SYSTEMS WITH CORBA. LANG, Ulrich y SCHREINER, Rudolf, Artech House, Norwood, 2002.

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

A NETWORKING APPROACH TO GRID COMPUTING, MINOLI, Daniel, John Wiley & Sons, New Jersey, 2005. GRID COMPUTING: Making the Global Infrastructure a Reality, BERMAN, Frank, HEY, Anthony y Fox Geoffrey, John Wiley & Sons, England, 2005.

ARTCULOS LA RED SEMNTICA. Tim Berners Lee y Hames Hendler en INVESTIGACIN Y CIENCIA, pgs. 39-47, Julio 2001 EL SUPERODENADOR BEUWOLF. William Hargrove INVESTIGACIN Y CIENCIA, pgs. 4-12, Octubre 2001 y Thomas Sterling en

INFORMATIZACIN DEL HOGAR. W. Wayt Gibss en INVESTIGACIN Y CIENCIA, pgs. 16-21, Abril 2002 EL COMPUTADOR MUNDIAL. DAVID P. Anderson INVESTIGACIN Y CIENCIA, pgs. 68-75, Mayo 2002 y John Kubiatowicz en

LA MALLA: COMPUTACIN SIN LMITES. Ian Foster en INVESTIGACIN Y CIENCIA, pgs. 60-67, Junio 2003 NUEVOS BUSCADORES EN LA RED. Javed Mostaza en INVESTIGACIN Y CIENCIA, pgs. 61-57, Abril 2005

SITIOS WEB

http://rfc.net/rfc-index.html Servidor donde residen los documentos Internet RFC (Request for Comments) http://www.wikipedia.org Sistema distribuido de informacin de referencia en mltiples idiomas http://www.disc-conference.org/ Simposio internacional sobre teora, diseo, anlisis, implementacin y aplicacin de redes y Sistemas Distribuidos. http://www.omg.org Grupo de Gestin de Objetos. Defini las especificaciones de UML, XML, CORBA

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA UNAD ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA CONTENIDO DIDCTICO DEL CUSO: 302090 SISTEMAS DISTRIBUIDOS

http://www.distributedcomputing.info/projects.html Portal de acceso a los principales proyectos de computacin distribuida en desarrollo a nivel mundial http://www.grid.org http://www.grid5000.org http://www.gridsystems.com Portales Web dedicados a la Computacin en malla. (Grid Computing) http://www.infor.uva.es/~fdiaz/sd/doc/java2.pdf Tutorial completo sobre JAVA.

LIBROS ELECTRNICOS http://info.borland.com/techpubs/jbuilder/jbuilderx/spanish/viewordownloadpdf.html Borland Corporation. Gua del desarrollador de Servicios Web. 2004. ftp://jano.unicauca.edu.co/cursos/SistDistrib/Corba/1-intro.pdf Introduccion a los Sistemas Distribuidos. PEREZ C., Jos Raul (ITESM) http://www.cs.ucl.ac.uk/staff/jon/ods/ods.html Libro en lnea Open Distributed Systems de Jon Crowcroft http://www.cdk3.net/ Libro en lnea Distributed Systems: Concepts and Design. 3th Edition de George Coulouris, Jean Dollimore y Tim Kindberg

REVISTAS ELECTRNICAS http://www.computer.org/portal/site/Internet// Revista. IEEE Internet Computing (Magazine). Revista. IEEE Transactions on Parallel and Distributed Systems http://www.elsevier.com/wps/find/journaldescription.cws_home/622895/description Revista. IEEE Transactions on Parallel and Distributed Systems (Journal)

You might also like