INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

166
INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y DESARROLLO TECNOLÓGICO EN CÓMPUTO. DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE CONSULTA REMOTA PARA UNA BIBLIOTECA. TESIS QUE PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO PRESENTA ING. MARTHA PATRICIA PELÁEZ FLORES DIRECTORES DE TESIS M. en C. JESÚS ANTONIO ÁLVAREZ CEDILLO M. en C. MAURICIO OLGUÍN CARBAJAL 2008

Transcript of INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

Page 1: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

INSTITUTO POLITEacuteCNICO NACIONAL

CENTRO DE INNOVACIOacuteN Y DESARROLLO TECNOLOacuteGICO EN COacuteMPUTO

DISENtildeO E IMPLEMENTACIOacuteN DE UN SISTEMA DE CONSULTA REMOTA PARA UNA BIBLIOTECA

TESIS QUE PARA OBTENER EL GRADO DE MAESTRIacuteA EN TECNOLOGIacuteA DE COacuteMPUTO

PRESENTA

ING MARTHA PATRICIA PELAacuteEZ FLORES

DIRECTORES DE TESIS

M en C JESUacuteS ANTONIO AacuteLVAREZ CEDILLO M en C MAURICIO OLGUIacuteN CARBAJAL

2008

3

Dedicada a mi Familia

A mis Padres Rogelio y Eddy A mis Tiacuteos Antonio y Emperatriz

A mi Madrina Coco A mis Hermanos y Primos

Carolina Ma Elena Cristina Abel Enrique y Pepe A mi cuntildeada Alejandra

A mi sobrino Abel Alejandro

4

AGRADECIMIENTOS Gracias a ti Dios por que siempre estas ahiacute por las bendiciones de que me rodeas por la vida por estos momentos de satisfaccioacuten que me brindas por haberme permitido conocer a todas las personas que menciono en las siguientes paacuteginas

5

AGRADEZCO AL INSTITUTO DE INVESTIGACIONES ANTROPOLOacuteGICAS A Dr Carlos Serrano Saacutenchez Director del instituto de Investigaciones Antropoloacutegicas por el permiso otorgado para ausentarme de mis labores y poder llevar a cabo esta importante etapa en mi formacioacuten acadeacutemica Al Dr Luis Barba Pingarroacuten y al Mtro Agustiacuten Ortiz Butroacuten mis jefes durante este periacuteodo Gracias por todos los permisos concedidos por su comprensioacuten y su ayuda Al Lic Claudio Herrera y a la Lic Silvia Abdalaacute compantildeeros del aacuterea de coacutemputo y Biblioteca por su solidaridad valiosa y oportuna ayuda en momentos tan decisivos A las compantildeeras de los Departamentos de Publicaciones y Fotografiacutea DG Martha Gonzaacutelez Ma de Lourdes Hernaacutendez y Rafael Reyes por su solidaridad y ayuda A todos los investigadores teacutecnicos acadeacutemicos y amigos que se interesaron en el proyecto de este tema de tesis por el animo que me proporcionaron y por su apoyo A la compantildeera de Biblioteca Rosario Garciacutea Yantildeez por su eficiente colaboracioacuten para la obtencioacuten del material bibliograacutefico para este trabajo Gracias a los prestadores de servicio social Geovanni Rodriacuteguez y David Sandoval por su colaboracioacuten y servicios brindados al IIA y en lo personal a miacute

6

AGRADEZCO Al CENTRO DE INNOVACIOacuteN Y DESARROLLO TEacuteCNOLOacuteGICO EN COacuteMPUTO-IPN Al Instituto Politeacutecnico Nacional gracias por haberme albergado en sus aulas por todo el conocimiento adquirido durante dos antildeos y medio Al colegio de profesores CIDETEC gracias por aceptarme en el programa de maestriacutea de tan respetable institucioacuten Al Dr Viacutector Manuel Silva Garciacutea Director del CIDETEC-IPN por el voto de confianza que me concedioacute para ingresar al programa de maestriacutea y gracias tambieacuten por todas sus ensentildeanzas palabras y frases de motivacioacuten durante la imparticioacuten de las clases de Matemaacuteticas discretas Al mismo tiempo deseo agradecer a todos y cada uno de los maravillosos profesores del CIDETEC por todos los conocimientos de que me llenaron por su profesionalismo en sus investigaciones y en la docencia permitieacutendome admirar en ellos que ademaacutes de contar de exitosa preparacioacuten acadeacutemica son personas sencillas y sobre todo gentiles A los miembros del comiteacute revisor gracias por la lectura de este documento por las observaciones oportunas y valiosas opiniones que me hicieron para mejorar este trabajo Dr Victor Manuel Silva Garciacutea Dra Hind Taud M en C Mauricio Olguiacuten Carbajal M en C Jesuacutes Antonio Aacutelvarez Cedillo M en C Juan Carlos Herrera Lozada M en C Israel Rivera Zaacuterate Al personal Administrativo y docente a la Lic Silvia Toledo a la Lic Irma a las amables secretarias al personal de biblioteca por iexcltodas Las preguntas que me respondieron tan gentilmente A los compantildeeros de maestria por lo que tambieacuten aprendiacute de ellos gracias por su ayuda disfrute con ellos muy buenos momentos en clase Oliver Roberto Rafael Viacutector Noel Ariel y Rubeacuten

A todos Muchas Gracias

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 2: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

3

Dedicada a mi Familia

A mis Padres Rogelio y Eddy A mis Tiacuteos Antonio y Emperatriz

A mi Madrina Coco A mis Hermanos y Primos

Carolina Ma Elena Cristina Abel Enrique y Pepe A mi cuntildeada Alejandra

A mi sobrino Abel Alejandro

4

AGRADECIMIENTOS Gracias a ti Dios por que siempre estas ahiacute por las bendiciones de que me rodeas por la vida por estos momentos de satisfaccioacuten que me brindas por haberme permitido conocer a todas las personas que menciono en las siguientes paacuteginas

5

AGRADEZCO AL INSTITUTO DE INVESTIGACIONES ANTROPOLOacuteGICAS A Dr Carlos Serrano Saacutenchez Director del instituto de Investigaciones Antropoloacutegicas por el permiso otorgado para ausentarme de mis labores y poder llevar a cabo esta importante etapa en mi formacioacuten acadeacutemica Al Dr Luis Barba Pingarroacuten y al Mtro Agustiacuten Ortiz Butroacuten mis jefes durante este periacuteodo Gracias por todos los permisos concedidos por su comprensioacuten y su ayuda Al Lic Claudio Herrera y a la Lic Silvia Abdalaacute compantildeeros del aacuterea de coacutemputo y Biblioteca por su solidaridad valiosa y oportuna ayuda en momentos tan decisivos A las compantildeeras de los Departamentos de Publicaciones y Fotografiacutea DG Martha Gonzaacutelez Ma de Lourdes Hernaacutendez y Rafael Reyes por su solidaridad y ayuda A todos los investigadores teacutecnicos acadeacutemicos y amigos que se interesaron en el proyecto de este tema de tesis por el animo que me proporcionaron y por su apoyo A la compantildeera de Biblioteca Rosario Garciacutea Yantildeez por su eficiente colaboracioacuten para la obtencioacuten del material bibliograacutefico para este trabajo Gracias a los prestadores de servicio social Geovanni Rodriacuteguez y David Sandoval por su colaboracioacuten y servicios brindados al IIA y en lo personal a miacute

6

AGRADEZCO Al CENTRO DE INNOVACIOacuteN Y DESARROLLO TEacuteCNOLOacuteGICO EN COacuteMPUTO-IPN Al Instituto Politeacutecnico Nacional gracias por haberme albergado en sus aulas por todo el conocimiento adquirido durante dos antildeos y medio Al colegio de profesores CIDETEC gracias por aceptarme en el programa de maestriacutea de tan respetable institucioacuten Al Dr Viacutector Manuel Silva Garciacutea Director del CIDETEC-IPN por el voto de confianza que me concedioacute para ingresar al programa de maestriacutea y gracias tambieacuten por todas sus ensentildeanzas palabras y frases de motivacioacuten durante la imparticioacuten de las clases de Matemaacuteticas discretas Al mismo tiempo deseo agradecer a todos y cada uno de los maravillosos profesores del CIDETEC por todos los conocimientos de que me llenaron por su profesionalismo en sus investigaciones y en la docencia permitieacutendome admirar en ellos que ademaacutes de contar de exitosa preparacioacuten acadeacutemica son personas sencillas y sobre todo gentiles A los miembros del comiteacute revisor gracias por la lectura de este documento por las observaciones oportunas y valiosas opiniones que me hicieron para mejorar este trabajo Dr Victor Manuel Silva Garciacutea Dra Hind Taud M en C Mauricio Olguiacuten Carbajal M en C Jesuacutes Antonio Aacutelvarez Cedillo M en C Juan Carlos Herrera Lozada M en C Israel Rivera Zaacuterate Al personal Administrativo y docente a la Lic Silvia Toledo a la Lic Irma a las amables secretarias al personal de biblioteca por iexcltodas Las preguntas que me respondieron tan gentilmente A los compantildeeros de maestria por lo que tambieacuten aprendiacute de ellos gracias por su ayuda disfrute con ellos muy buenos momentos en clase Oliver Roberto Rafael Viacutector Noel Ariel y Rubeacuten

A todos Muchas Gracias

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 3: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

4

AGRADECIMIENTOS Gracias a ti Dios por que siempre estas ahiacute por las bendiciones de que me rodeas por la vida por estos momentos de satisfaccioacuten que me brindas por haberme permitido conocer a todas las personas que menciono en las siguientes paacuteginas

5

AGRADEZCO AL INSTITUTO DE INVESTIGACIONES ANTROPOLOacuteGICAS A Dr Carlos Serrano Saacutenchez Director del instituto de Investigaciones Antropoloacutegicas por el permiso otorgado para ausentarme de mis labores y poder llevar a cabo esta importante etapa en mi formacioacuten acadeacutemica Al Dr Luis Barba Pingarroacuten y al Mtro Agustiacuten Ortiz Butroacuten mis jefes durante este periacuteodo Gracias por todos los permisos concedidos por su comprensioacuten y su ayuda Al Lic Claudio Herrera y a la Lic Silvia Abdalaacute compantildeeros del aacuterea de coacutemputo y Biblioteca por su solidaridad valiosa y oportuna ayuda en momentos tan decisivos A las compantildeeras de los Departamentos de Publicaciones y Fotografiacutea DG Martha Gonzaacutelez Ma de Lourdes Hernaacutendez y Rafael Reyes por su solidaridad y ayuda A todos los investigadores teacutecnicos acadeacutemicos y amigos que se interesaron en el proyecto de este tema de tesis por el animo que me proporcionaron y por su apoyo A la compantildeera de Biblioteca Rosario Garciacutea Yantildeez por su eficiente colaboracioacuten para la obtencioacuten del material bibliograacutefico para este trabajo Gracias a los prestadores de servicio social Geovanni Rodriacuteguez y David Sandoval por su colaboracioacuten y servicios brindados al IIA y en lo personal a miacute

6

AGRADEZCO Al CENTRO DE INNOVACIOacuteN Y DESARROLLO TEacuteCNOLOacuteGICO EN COacuteMPUTO-IPN Al Instituto Politeacutecnico Nacional gracias por haberme albergado en sus aulas por todo el conocimiento adquirido durante dos antildeos y medio Al colegio de profesores CIDETEC gracias por aceptarme en el programa de maestriacutea de tan respetable institucioacuten Al Dr Viacutector Manuel Silva Garciacutea Director del CIDETEC-IPN por el voto de confianza que me concedioacute para ingresar al programa de maestriacutea y gracias tambieacuten por todas sus ensentildeanzas palabras y frases de motivacioacuten durante la imparticioacuten de las clases de Matemaacuteticas discretas Al mismo tiempo deseo agradecer a todos y cada uno de los maravillosos profesores del CIDETEC por todos los conocimientos de que me llenaron por su profesionalismo en sus investigaciones y en la docencia permitieacutendome admirar en ellos que ademaacutes de contar de exitosa preparacioacuten acadeacutemica son personas sencillas y sobre todo gentiles A los miembros del comiteacute revisor gracias por la lectura de este documento por las observaciones oportunas y valiosas opiniones que me hicieron para mejorar este trabajo Dr Victor Manuel Silva Garciacutea Dra Hind Taud M en C Mauricio Olguiacuten Carbajal M en C Jesuacutes Antonio Aacutelvarez Cedillo M en C Juan Carlos Herrera Lozada M en C Israel Rivera Zaacuterate Al personal Administrativo y docente a la Lic Silvia Toledo a la Lic Irma a las amables secretarias al personal de biblioteca por iexcltodas Las preguntas que me respondieron tan gentilmente A los compantildeeros de maestria por lo que tambieacuten aprendiacute de ellos gracias por su ayuda disfrute con ellos muy buenos momentos en clase Oliver Roberto Rafael Viacutector Noel Ariel y Rubeacuten

A todos Muchas Gracias

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 4: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

5

AGRADEZCO AL INSTITUTO DE INVESTIGACIONES ANTROPOLOacuteGICAS A Dr Carlos Serrano Saacutenchez Director del instituto de Investigaciones Antropoloacutegicas por el permiso otorgado para ausentarme de mis labores y poder llevar a cabo esta importante etapa en mi formacioacuten acadeacutemica Al Dr Luis Barba Pingarroacuten y al Mtro Agustiacuten Ortiz Butroacuten mis jefes durante este periacuteodo Gracias por todos los permisos concedidos por su comprensioacuten y su ayuda Al Lic Claudio Herrera y a la Lic Silvia Abdalaacute compantildeeros del aacuterea de coacutemputo y Biblioteca por su solidaridad valiosa y oportuna ayuda en momentos tan decisivos A las compantildeeras de los Departamentos de Publicaciones y Fotografiacutea DG Martha Gonzaacutelez Ma de Lourdes Hernaacutendez y Rafael Reyes por su solidaridad y ayuda A todos los investigadores teacutecnicos acadeacutemicos y amigos que se interesaron en el proyecto de este tema de tesis por el animo que me proporcionaron y por su apoyo A la compantildeera de Biblioteca Rosario Garciacutea Yantildeez por su eficiente colaboracioacuten para la obtencioacuten del material bibliograacutefico para este trabajo Gracias a los prestadores de servicio social Geovanni Rodriacuteguez y David Sandoval por su colaboracioacuten y servicios brindados al IIA y en lo personal a miacute

6

AGRADEZCO Al CENTRO DE INNOVACIOacuteN Y DESARROLLO TEacuteCNOLOacuteGICO EN COacuteMPUTO-IPN Al Instituto Politeacutecnico Nacional gracias por haberme albergado en sus aulas por todo el conocimiento adquirido durante dos antildeos y medio Al colegio de profesores CIDETEC gracias por aceptarme en el programa de maestriacutea de tan respetable institucioacuten Al Dr Viacutector Manuel Silva Garciacutea Director del CIDETEC-IPN por el voto de confianza que me concedioacute para ingresar al programa de maestriacutea y gracias tambieacuten por todas sus ensentildeanzas palabras y frases de motivacioacuten durante la imparticioacuten de las clases de Matemaacuteticas discretas Al mismo tiempo deseo agradecer a todos y cada uno de los maravillosos profesores del CIDETEC por todos los conocimientos de que me llenaron por su profesionalismo en sus investigaciones y en la docencia permitieacutendome admirar en ellos que ademaacutes de contar de exitosa preparacioacuten acadeacutemica son personas sencillas y sobre todo gentiles A los miembros del comiteacute revisor gracias por la lectura de este documento por las observaciones oportunas y valiosas opiniones que me hicieron para mejorar este trabajo Dr Victor Manuel Silva Garciacutea Dra Hind Taud M en C Mauricio Olguiacuten Carbajal M en C Jesuacutes Antonio Aacutelvarez Cedillo M en C Juan Carlos Herrera Lozada M en C Israel Rivera Zaacuterate Al personal Administrativo y docente a la Lic Silvia Toledo a la Lic Irma a las amables secretarias al personal de biblioteca por iexcltodas Las preguntas que me respondieron tan gentilmente A los compantildeeros de maestria por lo que tambieacuten aprendiacute de ellos gracias por su ayuda disfrute con ellos muy buenos momentos en clase Oliver Roberto Rafael Viacutector Noel Ariel y Rubeacuten

A todos Muchas Gracias

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 5: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

6

AGRADEZCO Al CENTRO DE INNOVACIOacuteN Y DESARROLLO TEacuteCNOLOacuteGICO EN COacuteMPUTO-IPN Al Instituto Politeacutecnico Nacional gracias por haberme albergado en sus aulas por todo el conocimiento adquirido durante dos antildeos y medio Al colegio de profesores CIDETEC gracias por aceptarme en el programa de maestriacutea de tan respetable institucioacuten Al Dr Viacutector Manuel Silva Garciacutea Director del CIDETEC-IPN por el voto de confianza que me concedioacute para ingresar al programa de maestriacutea y gracias tambieacuten por todas sus ensentildeanzas palabras y frases de motivacioacuten durante la imparticioacuten de las clases de Matemaacuteticas discretas Al mismo tiempo deseo agradecer a todos y cada uno de los maravillosos profesores del CIDETEC por todos los conocimientos de que me llenaron por su profesionalismo en sus investigaciones y en la docencia permitieacutendome admirar en ellos que ademaacutes de contar de exitosa preparacioacuten acadeacutemica son personas sencillas y sobre todo gentiles A los miembros del comiteacute revisor gracias por la lectura de este documento por las observaciones oportunas y valiosas opiniones que me hicieron para mejorar este trabajo Dr Victor Manuel Silva Garciacutea Dra Hind Taud M en C Mauricio Olguiacuten Carbajal M en C Jesuacutes Antonio Aacutelvarez Cedillo M en C Juan Carlos Herrera Lozada M en C Israel Rivera Zaacuterate Al personal Administrativo y docente a la Lic Silvia Toledo a la Lic Irma a las amables secretarias al personal de biblioteca por iexcltodas Las preguntas que me respondieron tan gentilmente A los compantildeeros de maestria por lo que tambieacuten aprendiacute de ellos gracias por su ayuda disfrute con ellos muy buenos momentos en clase Oliver Roberto Rafael Viacutector Noel Ariel y Rubeacuten

A todos Muchas Gracias

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 6: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

7

AGRADEZCO A LOS DIRECTORES DE ESTA TESIS Al M en C Jesuacutes Antonio Aacutelvarez Cedillo quieacuten mejor que eacutel puede llevar tan digno nombre le agradezco profundamente todos los conocimientos esfuerzos la dedicacioacuten para llevar a feliz termino este trabajo Gracias por mostrar siempre disposicioacuten para atenderme no soacutelo a miacute sino a todos sus alumnos es una gran inspiracioacuten para miacute

Muchas Gracias Profesor Al M en C Mauricio Olguiacuten Carbajal Gracias por su orientacioacuten y por sus puntuales y acertadas recomendaciones para la elaboracioacuten de este trabajo le agradezco ademaacutes sus palabras de animo que me brindoacute en momentos de presioacuten

Muchas gracias por toda su gentileza

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 7: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...

8

AGRADEZCO A ti Rubeacuten por todo lo compartido por soportar tanto mis malos ratos mis momentos de ldquolocurardquo por las horas extras por estar ahiacute iexcltuacute sabes

GRACIAS A ti mi fiel amiga Rebeca porque a pesar de todo y principalmente a pesar de miacute sigues ahiacute

GRACIAS A Miguel Mireles maravilloso amigo siempre tienes las palabras adecuadas para orientarme

GRACIAS

9

10

11

ldquoEl objetivo es la amplitud no la profundidad Las tecnologiacuteas actuales podriacutean volverse obsoletas en diez antildeos pero el principio permaneceraacuterdquo

Douglas E Comer

4

IacuteNDICE

_______________________________________________

ANTECEDENTES Glosario 7 Titulo 9 Resumen 9 Abstract 9 Introduccioacuten 9 Objetivo 17 Objetivos particulares17 Motivacioacuten 17 Problemaacutetica 18 Contribucioacuten 18 Solucioacuten 18 Contenido del trabajo 18

CAPIacuteTULO 1

1-EL MODELO CLIENTE-SERVIDOR 11 Definiciones arquitectura de red servidor y cliente 21 12 Tipos de configuracioacuten del Modelo cliente-servidor 23 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor 25 14 Especificaciones a seguir en la eleccioacuten de cliente 28 15 Paradigma Cliente-servidor 29 16 Variaciones en el modelo cliente-servidor 38 17 Alternativas al modelo cliente servidor 40 18 Ventajas y desventajas del modelo cliente-servidor 43

CAPIacuteTULO 2

2-SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten 45 22 Elementos esenciales en un sistema distribuido 49 23 Servicios y protocolos de red 51 24 Middleware basado en documentos 54

5

25 Middleware Basado en el sistema de archivos 54 26 Middleware basado en objetos compartidos 57 27 Middleware basado en coordinacioacuten 58 28 Caracteriacutesticas principales de los sistemas distributivos 60 29 Modelos para aplicaciones distribuidas 66

CAPIacuteTULO 3

3-PROTOCOLOS REMOTOS 31 Necesidad de los protocolos 71 32 Familias de protocolos 72 33 Lista de protocolos 72 331 TCP (Transmisioacuten Control Protocol) 72 332 UDP (User Datagram Protocol) 75 333 ARP (Address Resolution Protocol) 76 334 Protocolo RARP 78 335 Protocolo Finger 78 336 TFTP (TRIVIAL FTP) 79 337 FTP (File Transfer Protocol) 82 338 Protocolo TELNET 82 339 DHCP (Dinamic Host Configuration Protocol) 85 3310 HTTP (Hypertext Transfer Protocol) 88 3311 IRC (Internet Relay Chat) 91 3313 PPP (Point to Point Protocol) 91 3314 RDP 93 3315 IPXSPX 93 3316 NetBEUI 93 3317 AppleTalk 94 31218 DLC 94 31219 Protocolo PXE 95

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto 99 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto 100 421 iquestPorqueacute Ubuntu 100

6

422 Base de datos MySQL 101 423 El lenguaje de Programacioacuten GAMBAS 102 424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP 104 4241 Funcionamiento de PXE105 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto109 431 Instalacioacuten del sistema Operativo 110 432 Configuracioacuten del servidor con los primeros cuatro servicios112 4321 Instalacioacuten de servidor DHCP 112 4322 Instalacioacuten de servidor tftp 113 4323 Instalando nfs-kernel-server 114 4323 Instalando LSTP 116 434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario 120 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario125 4351 Creacioacuten de la base de datos 133 4352 Creacioacuten de la tabla 134 4353 Cargar la informacioacuten dentro de la tabla 135 436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario 137 4361 Creacioacuten de los formularios 137 4362 Conexioacuten a la base de datos 138 4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada 141 437 Configuracioacuten del sistema en el servidor 143 438 Configuracioacuten del equipo cliente para arrancar desde red 145 439 Integracioacuten de la red estrella 146 4310 Etapa de prueba 146

CAPIacuteTULO 5

RESULTADOS Y CONCLUSIONES Conclusiones 148 Trabajos a futuros 150 APEacuteNDICE A 151 REFERENCIAS 155

4

GLOSARIO ACTIVE X Lenguaje de programacioacuten al estilo de Java propuesto por Microsoft ANSI AMERICAN NATIONAL STANDARD INSTITUTEInstituto Nacional Americano de Estaacutendar API Aplication Program Interface Interfaz de Aplicacioacuten del Programa Es el conjunto de rutinas del sistema que se pueden usar en un programa para la gestioacuten de entradasalida gestioacuten de ficheros etc ARCHIE Software utilizado para localizar archivos en servidores FTP A partir de 1994 ha caiacutedo en desuso debido a la aparicioacuten del WWW o Web ARCHIVO DE TEXTO Archivo que utiliza solamente caracteres del estaacutendar ASCII y por lo tanto que puede ser enviado por correo electroacutenico sin ninguacuten tipo de modificacioacuten ASCII American Standard Code for Information Interchange Estaacutendar Americano para Intercambio de Informacioacuten La tabla baacutesica de caracteres ASCII esta compuesta por 128 caracteres incluyendo siacutembolos y caracteres de control Existe una versioacuten extendida de 256 AUI Asociacioacuten de usuarios de Internet BANDWITH Ancho de Banda Capacidad maacutexima de un medio de transmisioacuten yo enlace BASE DE DATOS conjunto de datos organizados de modo tal que resulte faacutecil acceder a ellos gestionarlos y actualizarlos BIOS Basic Input Output System Sistema Baacutesico de EntradaSalida Programa residente normalmente en Eprom que controla la iteracciones baacutesicas entre el hardware y el Software BIT Binary Digit Digito Binario Unidad miacutenima de informacioacuten puede tener dos estados 0 o 1 BOOTP Bootstrap Protocol Protocolo de Arranque-Asignacioacuten Proporciona a una maacutequina una direccioacuten IP Gateway y Netmask Usado en comunicaciones a traveacutes de liacutenea telefoacutenica BROWSER Navegador Teacutermino aplicado normalmente a los programas que permiten acceder al servicio WWW BUS Viacutea o canal de Transmisioacuten Tiacutepicamente un BUS es una conexioacuten eleacutectrica de uno o maacutes conductores en el cual todos los dispositivos ligados reciben simultaacuteneamente todo lo que se transmite Byte 1 Byte es un caraacutecter y equivale a 8 bits 1Kbyte equivale a 1024 bytes CD Compact Disc Disco Compacto Disco oacuteptico de 12 cm de diaacutemetro para almacenamiento binario Su capacidad formateado es de 660 Mb Usado en principio para almacenar audio Cuando se usa para almacenamiento de datos geneacutericos es llamado CD-ROM COMANDO Instruccioacuten determinada que indica en un programa la ejecucioacuten de una accioacuten especiacutefica como guardar salir conectar etc CONFIGURACIOacuteN Declaracioacuten de las opciones o caracteriacutesticas con las que deberaacute ejecutarse determinado archivo oacute programa DATAGRAMA Usualmente se refiere a la estructura interna de un paquete de datos DNS Domain Name System Sistema de nombres de Dominio Base de datos distribuida que gestiona la conversioacuten de direcciones de Internet expresadas en lenguaje natural a una direccioacuten numeacuterica IP Ejemplo 121120101 EBCDIC Extended Bynary Coded Decimal Interchange Code Coacutedigo Extendido de Binario Codificado Decimal Sistema mejorado de empaquetamiento de nuacutemeros decimales en sistema binario ETHERNETDisentildeo de red de aacuterea local normalizado como IEEE 8023 Utiliza transmisioacuten a 10 Mbps por un bus Coaxial Meacutetodo de acceso es CSMACD

5

FASTETHERNET Disentildeo de red Ethernet donde se alcanzan velocidades de hasta 100 Mbps comuacutenmente son inteligentes y se les permite identificar los nodos que trabajaraacuten maacutes raacutepido que otros FTP File Transfer Protocol Protocolo de Transferencia de Archivos Uno de los protocolos de transferencia de ficheros mas usado en Internet FUNCION En programacioacuten una rutina que hace una tarea particular Cuando el programa pasa el control a una funcioacuten eacutesta realiza la tarea y devuelve el control a la instruccioacuten siguiente a la que llamo GATEWAY Pasarela Puerta de Acceso Dispositivo que permite conectar entre si dos redes normalmente de distinto protocolo o un Host a una red GUI Graphic User Interface Interfaz Graacutefica de Usuario Hardware A los componentes que es posible ver y tocar se les llama en jerga computacional hardware palabra inglesa cuyo significado es maacutequina o cosa dura HDLC High-Level Data Link Control Control de Enlace de Datos de Alto Nivel Es un protocolo orientado al bit HDSL High bit rate Digital Subscriber Linea Linea Digital de Abonado de alta velocidad Sistema de transmisioacuten de datos de alta velocidad que utiliza dos pares trenzados Se consiguen velocidades superiores al Megabit en ambos sentidos HOST Anfitrioacuten Computador conectado a Internet Computador en general HPFS high performance file system Sistema de Archivos de Alto Rendimiento Sistema que utiliza el OS2 opcionalmente para organizar el disco duro en lugar del habitual de FAT HTML HyperText Markup Language Lenguaje de Marcas de Hipertexto Lenguaje para elaborar paginas Web actualmente se encuentra en su versioacuten 3 Fue desarrollado en el CERN http HyperText Transfer Protocol Protocolo de Transferencia de Hypertexto Protocolo usado en WWW IANA Internet Assigned Number Authority Autoridad de Asignacioacuten de Nuacutemeros en Internet Se trata de la entidad que gestiona la asignacioacuten de direcciones IP en Internet ICMP Internet Control Message Protocol Protocolo Internet de Control de Mensajes INTERNET Conjunto de redes y ruteadores que utilizan el protocolo TCPIP y que funciona como una sola gran red IPI Intelligent Peripheral Interface Interfaz Inteligente de Perifeacutericos En ATM Initial Protocol Identifier Identificador Inicial de Protocolo IPX Internet Packet Exchange Intercambio de Paquetes entre Redes Inicialmente protocolo de Novell para el intercambio de informacioacuten entre aplicaciones en una red Netware IRCInternet Relay Chat Canal de Chat de Internet Sistema para transmisioacuten de texto multiusuario a traveacutes de un servidor IRC Usado normalmente para conversar on-line tambieacuten sirve para transmitir ficheros ISDN Integrated Services Digital Network Red Digital de Servicios Integrados Servicio provisto por una empresa de comunicaciones que permite transmitir simultaacuteneamente diversos tipos de datos digitales conmutados y voz ISO International Standard Organization Organizacioacuten Internacional de Estaacutendares ISP Internet Service Provider Proveedor de Servicios Internet ISS Internet Security Scanner Rastreador de Seguridad de Internet Programa que busca puntos vulnerables de la red con relacioacuten a la seguridad ITU International Telecommunications Union Union Internacional de Telecomunicaciones Forma parte de la CCITT Organizacioacuten que desarrolla estaacutendares a nivel mundial para la tecnologiacutea de las telecomunicaciones LAN Local Area Network Red de Area Local Una red de aacuterea local es un sistema de comunicacioacuten de alta velocidad de transmisioacuten Estos sistemas estaacuten disentildeados para permitir la comunicacioacuten y transmisioacuten de datos entre estaciones de trabajo inteligentes comuacutenmente conocidas como Computadoras Personales Todas las PCs conectadas a

6

una red local pueden enviar y recibir informacioacuten Como su mismo nombre lo indica una red local es un sistema que cubre distancias cortas Una red local se limita a una planta o un edificio LCP Link Control Protocol Protocolo de Control de Enlace Link Enlace Unioacuten Se llama asiacute a las partes de una paacutegina WEB que nos llevan a otra parte de la misma o nos enlaza con otro servidor LINUX Versioacuten Shareware(software distribuido en calidad de prueba) yo Freeware del conocido sistema operativo Unix Es un sistema multitarea multiusuario de 32 bits para PC NCP Network Control Protocol Protocolo de Control de Red Es un protocolo del Network Layer NET Red NETBIOS Network BIOS Network Basic InputOutput System Bios de una red es decir Sistema Baacutesico de EntradaSalida de red Nic Network Interface Card Tarjeta de Red NSA National Security Agency Agencia Nacional de Seguridad Organismo americano para la seguridad entre otras asuntos relacionados con la informaacutetica NSF National Science Fundation Fundacioacuten Nacional de Ciencia Fundacioacuten americana que gestiona gran parte de los recursos de Internet ODBC Open DataBase Connectivity es una interfaz standard para acceder a bases de datos relacionales utilizando SQL Esto le permite trabajar con los datos de una base de datos como Oracle Sybase Informix desde cualquier aplicacioacuten que soporte ODBC OSI Open Systems Interconnection Interconexioacuten de Sistemas Abiertos Modelo de referencia de interconexioacuten de sistemas abiertos propuesto por la ISO Divide las tareas de la red en siete niveles POP Post Office Protocol Protocolo de Oficina de Correos Protocolo usado por computadores personales para manejar el correo sobre todo en recepcioacuten PPP Point to POINT PROTOCOL Protocolo Punto a Punto Un sucesor del SLIP El PPP provee las conexiones sobre los circuitos siacutencronos o asiacutencronos entre router y router o entre host y la red Protocolo Internet para establecer enlace entre dos puntosPROXY Servidor Cacheacute El Proxy es un servidor de que conectado normalmente al servidor de acceso a la WWW de un proveedor de acceso va almacenando toda la informacioacuten que los usuarios reciben de la WEB por tanto si otro usuario accede a traveacutes del proxy a un sitio previamente visitado recibiraacute la informacioacuten del servidor proxy en lugar del servidor real PROGRAMA Es una coleccioacuten de instrucciones que indican a la computadora que debe hacer Un programa se denomina software por lo tanto programa software e instruccioacuten son sinoacutenimos PROTOCOLO Un conjunto de reglas formales que describen como se trasmiten los datos especialmente a traveacutes de la red RARP Reverse Address Resolution Protocol Protocolo de Resolucioacuten de Direccioacuten de Retorno Protocolo de bajo nivel para la asignacioacuten de direcciones IP a maquinas simples desde un servidor en una red fiacutesica RAM Random Access Memory Memoria de Acceso Aleatorio Varios son los tipos de memoria que se usa en las computadoras La maacutes conocida son las RAM Se les llama asiacute porque es posible dirigirse directamente a la ceacutelula donde se encuentra almacenada la informacioacuten Su principal caracteriacutestica es que la informacioacuten se almacena en ellas provisoriamente pudiendo ser grabadas una y otra vez al igual que un casette de sonido La memoria RAM se puede comparar a un escritorio donde se coloca los papeles con que se va a trabajar Mientras maacutes grande el escritorio maacutes papeles soporta simultaacuteneamente para ser procesados RAS Remote Access Server Servidor de Acceso Remoto RDSI Red Digital de Servicios Integrados Red de telefoacutenica con anchos de banda desde 64Kbps Similar a la red telefoacutenica de voz en cuanto a necesidades de instalacioacuten de cara al abonado pero digital En ingleacutes ISDNRFC Request For Comment Peticioacuten de comentarios Serie de

7

documentos iniciada en 1967 que describe el conjunto de protocolos de Internet Los RFC son elaborados por la comunidad Internet RIP Routing Information Protocol Protocolo de Informacioacuten de Routing ROM Read Only Memory Memoria soacutelo de lectura Las memorias ROM se usan para mantener instrucciones permanentes que no deben borrarse nunca Estas memorias vienen grabadas de faacutebrica Son como los discos fonograacuteficos que soacutelo permiten reproducir el sonido Tienen la ventaja de ser de alta velocidad y bajo costo ROOT Raiacutez En sistemas de ficheros se refiere al directorio raiacutez En Unix se refiere al usuario principal ROUTER Dispositivo conectado a dos o mas redes que se encarga uacutenicamente de tareas de comunicaciones RTC Red Telefoacutenica Conmutada Red Telefoacutenica para la transmisioacuten de voz RTP Real Time Protocol Protocolo de Tiempo Real Protocolo utilizado para la transmisioacuten de informacioacuten en tiempo real como por ejemplo audio y video en una video-conferencia SERVIDOR computadora central de un sistema de red que provee servicios y programas a otras computadoras conectadas Sistema que proporciona recursos (por ejemplo servidores de archivos servidores de nombres) En Internet este teacutermino se utiliza muy a menudo para designar a aquellos sistemas que proporcionan informacioacuten a los usuarios de la red SLIP Serial Line Internet Protocol Protocolo Internet en Liacutenea Serial Protocolo antecesor del PPP que permite establecer conexiones TCPIP a traveacutes de enlaces seriales SMPT Simple Mail Transfer Protocol Protocolo de Transferencia Simple de Correo Es el protocolo usado para transportar el correo a traveacutes de Internet SISTEMA OPERATIVO programa que administra los demaacutes programas en una computadora SOFTWARE Esta palabra inglesa que significa cosa suave tiene dos significados (a) uno amplio de procedimientos loacutegicos para la cooperacioacuten armoacutenica de un grupo de personas y maacutequinas persiguiendo un objetivo comuacuten (b) el otro restringido de programas de computadora o conjunto de instrucciones que se pone en la memoria de una computadora para dirigir sus operaciones SQL Structured Query Language Lenguaje de Peticioacuten Estructurada Lenguaje para base de datos SSL Secure Sockets Layer Capa de Socket Segura Protocolo que ofrece funciones de seguridad a nivel de la capa de transporte para TCP TCPIP Transmission Control Protocol Internet Protocol Protocolo de Control de Transmisioacuten Protocolo Internet Nombre comuacuten para una serie de protocolos desarrollados por DARPA en los Estados Unidos en los antildeos 70 para dar soporte a la construccioacuten de redes interconectadas a nivel mundial TCP corresponde a la capa (layer) de transporte del modelo OSI y ofrece transmisioacuten de datos El IP corresponde a la capa de red y ofrece servicios de datagramas sin conexioacuten Su principal caracteriacutestica es comunicar sistemas diferentes Fueron disentildeados inicialmente para ambiente Unix por Victor G Cerf y Robert E Kahn El TCP IP son baacutesicamente dos de los mejores protocolos conocidos TELNET Protocolo y aplicaciones que permiten conexioacuten como terminal remota a una computadora anfitriona en una localizacioacuten remota TIME-OUT Paraacutemetro que indica a un programa el tiempo maacuteximo de espera antes de abortar una tarea o funcioacuten Tambieacuten mensaje de error TOPOLOGIacuteA La forma de la red Predominan tres tipos de tecnologiacuteas Bus Estrella y Anillo TXAbreviatura de Transmisioacuten o Transmitiendo UDP User Datagram Protocol Protocolo de Datagrama de Usuario Protocolo abierto en el que el usuario (programador) define su propio tipo de paquete

8

UNICAST Se refiere a Protocolos o Dispositivos que transmiten los paquetes de datos de una direccioacuten IP a otra direccioacuten IP UNIX Sistema operativo multitarea multiusuario Gran parte de las caracteriacutesticas de otros sistemas mas conocidos como MS-DOS estaacuten basadas en este sistema muy extendido para grandes servidores Internet no se puede comprender en su totalidad sin conocer el Unix ya que las comunicaciones son una parte fundamental en Unix URL Uniform Resource Locator Localizador Uniforme de Recursos Denominacioacuten que no solo representa una direccioacuten de Internet sino que apunta aun recurso concreto dentro de esa direccioacuten UTP Unshielded Twisted Pair par trenzado no apantallado) es un tipo de cableado utilizado principalmente para comunicaciones WWW WEB o W3 World Wide Web Telarantildea mundial Sistema de arquitectura cliente-servidor para distribucioacuten y obtencioacuten de informacioacuten en Internet basado en hipertexto e hipermedia Fue creado en el Laboratorio de Fiacutesica de Energiacutea Nuclear del CERN en Suiza en 1991 y ha sido el elemento clave en el desarrollo y masificacioacuten del uso de Internet X Window System Sistema de Ventanas X El sistema de Ventanas X permite que cada ventana se conecte con una computadora remota

9

Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca Resumen Este trabajo expone una forma de adaptar la potencialidad de los protocolos remotos en el disentildeo de un sistema de consulta de fichas bibliograacuteficas para una biblioteca a un bajo costo reutilizando equipo informaacutetico en desuso Tales equipos funcionaran como terminales las cuales estaraacuten conectadas mediante una red tipo estrella a un servidor central que se encargaraacute de proporcionar el servicio de consulta del acervo bibliograacutefico Abstract This paper describes a way to adapt the potential of remote protocols in the design of a system of consultation of bibliographic records for a library at a low cost by reusing equipment no longer in use These obsolete computers function as terminals which will be connected through a network type star to a central server that will provide the consultation service of bibliographic

ANTECEDENTES Introduccioacuten El tema de consulta del catalogo bibliograacutefico de una institucioacuten o empresa viacutea red en si no es nada nuevo existen diversas formas mas que eficientes de realizar estas consultas en varias de las cuales no importa la distancia implicada gracias a que existen varios meacutetodos de acceder en forma remota a un servicio de esta clase Entre las formas de conexioacuten remota existentes y mejor conocidas estaacuten

Viacutea Telnet Uso del protocolo Z3950 Norma para la Recuperacioacuten de

Informacioacuten Mediante un servidor WEB Utilizando las redes virtuales VPN Ocupando Terminales X-Window Empleando XDMCP e Implementando sistemas Diskless

Ver Apeacutendice A

10

Sistemas de consulta bibliograacutefica existentes

Entre los sistemas de consulta bibliograacutefica en funcionamiento que utilizan las formas de conexioacuten anteriores y que actualmente estaacuten instalados en algunas Universidades se sentildealan los siguientes

Sistema de Consulta bibliograacutefica Unicorn

Unicorn Webcat es el sistema de consulta de la Universidad Politeacutecnica de Madrid en Espantildea que ofrece su biblioteca para acceder en liacutenea (ONLINE) a sus fondos fig 1 basado en el uso del protocolo Z3950

La buacutesqueda no se realiza uacutenicamente en un centro sino que tambieacuten se puede buscar en todos los centros pertenecientes a esa universidad de esta forma se sabe si la consulta se puede encontrar en esa universidad o en otra como por ejemplo en la de informaacutetica o derecho

Fig 1 Sistema de consulta bibliograacutefica basado en Unicorn

11

Detraacutes de esta buacutesqueda y de Unicorn hay una base de datos en que consta toda la informacioacuten referente al estado de las bibliotecas es decir los libros con los que cuenta en estantes los libros en almaceacuten el estado de preacutestamo de los mismos o incluso la posibilidad de reserva

El Unicorn propio de cada centro permite realizar varias acciones -Cataacutelogo es propiamente la buacutesqueda de los tiacutetulos en la base de datos de esa universidad accediendo a todas las bibliotecas de los centros pertenecientes a ella -Otros recursos lo mismo pero accediendo a otros cataacutelogos no pertenecientes a la universidad

La buacutesqueda se puede desarrollar bajo tres patrones o formas diferentes seguacuten el grado de la buacutesqueda que se quiera realizar La buacutesqueda sencilla es la que nos de forma predeterminada y es la maacutes simple de todas Se basa en la buacutesqueda de palabras claves que concuerden exactamente o parcialmente con las correspondientes entradas de la base de datos asiacute se puede buscar por titulo por autor por materia o incluso por nuacutemero de serie (identificador del libro)

Los resultados de estas acciones aparecen en una pantalla con todas las entradas a la base de datos que concuerdan seguacuten el meacutetodo de buacutesqueda con lo solicitado

La direccioacuten del sitio WEB para ingresar al sistema de consulta es la siguiente

wwwupmesbibliotecahtml

Sistema de Consulta bibliograacutefica ALEPH ALEPH (Automated Library Expandable Program) Programa Expandible para Biblioteca Automatizada ALEPH esta disentildeado para correr en bases de datos RDBMS (Sistema Administrador de Bases de Datos Relacionales) su disentildeo se basa en 110 tablas numeradas con la letra Z como prefijo dado que es un sistema que cuenta con varios moacutedulos para las bibliotecas muchas tablas son para administracioacuten sin embargo en tres tablas se guarda la informacioacuten de los registros bibliograacuteficos la z00 la z01 ALEPH esta basado en Oracle el sistema ALEPH 500 ofrece soporte completo de Unicote (norma que regula la codificacioacuten de caracteres) administracioacuten de reportes con XML Extensible Markup Language

12

(Lenguaje de marcas ampliable) y enlaces API hacia otras aplicaciones de primera liacutenea Basado en estaacutendares industriales como Open URL XML OAI NCIP y ODBC sus principales caracteriacutesticas son la capacidad de compartir recursos completa conectividad e interaccioacuten transparente con otros sistemas y bases de datos La arquitectura de ALEPH 500 incluye clientes staff basados en Microsoft Windows navegadores web para el puacuteblico y clientes Z3950 para buacutesqueda y recuperacioacuten remota

Fig 2 Ejemplo de sistema de consulta bibliograacutefica basado en Aleph de la Universidad Autoacutenoma de Bucaramanga Colombia

Sistema de consulta bibliograacutefica Alephino Alephino es un sistema Cliente Servidor adecuado para las bibliotecas pequentildeas y medianas aunque es aplicable a todos los tipos de biblioteca En este sistema los datos bibliograacuteficos y administrativos estaacuten almacenados en varios archivos maestros ligados entre siacute de tal manera

13

que permiten el procesamiento de los registros para todos los moacutedulos de Alephino Los moacutedulos trabajan en forma integrada y consistente con interfaces graacuteficas El sistema multibase de Alephino permite la administracioacuten de cualquier nuacutemero de bases de datos independientemente de las demaacutes A traveacutes de bases de datos externas pueden acceder los inventarios de otras bibliotecas asiacute que en retrospectiva la catalogacioacuten de su propio inventario puede ser significativamente acelerado Sistema de consulta bibliograacutefica Absys Z-Link El moacutedulo Absys Z-Link es una pasarela webZ3950 que permite hacer consultas bibliograacuteficas a varios servidores Absys Z3950 independientes desde una interfaz uacutenica y ofrecer los resultados de una forma conjunta Es decir este moacutedulo posibilita crear Cataacutelogos Colectivos Virtuales en tiempo real

Fig 3 Modelo de trabajo del Sistema de consulta bibliograacutefica Absys Z-Link

14

Funcionamiento de Absys z-link 1- El Usuario puede formar su propio modelo de buacutesqueda para establecer los contactos entre varios servidores de diferentes bibliotecas para realizar una consulta se pueden tener varios modelos diferentes en el Absys Z-Link en funcioacuten de lo que se necesite estos modelos de buacutesqueda se guardan en archivos que se denominan zopwebnnll los cuales se alojan en el directorio del Z-Link 2 Se pueden antildeadir varios cataacutelogos Absys Z3950 en un mismo modelo y cada uno con diferentes caracteriacutesticas Entre ellas se determina la obligatoriedad de buscar o no en un servidor Z3950 y la prioridad (peso) de un cataacutelogo sobre otro a la hora de mostrar los resultados

Fig 4 Seleccioacuten de las bibliotecas disponibles para realizar la consulta 3 Una vez seleccionado los cataacutelogos muestra la pantalla de consulta Los formularios de consulta son configurables y se modifican en el zopwebnnll

15

Fig 5 Formato de consulta bibliotecaria 4 Una vez realizada la consulta el sistema informa de la cantidad de documentos encontrados por cataacutelogo consultado Si no se puede conectar con alguacuten cataacutelogo apareceraacute el mensaje conexioacuten rechazada 5 A continuacioacuten presentaraacute un listado de los tiacutetulos y fecha de edicioacuten de los resultados encontrados Si un documento se encuentra en varias bibliotecas lo que haraacute el sistema es traerse la descripcioacuten bibliograacutefica del cataacutelogo que tenga mayor prioridad y le adjuntaraacute los ejemplares de todos los registros bibliograacuteficos ideacutenticos Fig6

Fig 6 Listado de tiacutetulos encontrados y su ubicacioacuten en ABsys Z-LINK

16

El desarrollo del presente trabajo no intenta competir con estas formas de conexioacuten remota existentes dirige su atencioacuten en aprovechar parte de los recursos todaviacutea en perfectas condiciones de computadoras clasificadas como en desuso que aunque bien estas computadoras ya no responden a las necesidades de los estaacutendares actuales gran parte de sus componentes pueden ser reaprovechados para otras funciones que no demandan grandes recursos de coacutemputo la idea es aplicar la potencialidad de la tecnologiacutea de software que permita que los componentes de hardware trabajen de forma oacuteptima ofreciendo al usuario un sistema de consulta confiable eficiente a bajo costo El funcionamiento de los sistemas anteriores tienen un eacutexito eficaz pero se debe tener en cuenta que estos sistemas tienen un mejor desempentildeo si se utiliza equipo informaacutetico mas o menos reciente sino de lo contrario el usuario se encontraraacute con ciertas desventajas para obtener el servicio es por esta razoacuten que muchos de los cataacutelogos bibliograacuteficos de importantes instituciones soportan este servicio viacutea telnet por ser un protocolo que ha demostrado ser adaptable confiable y raacutepido en cuanto a su funcionamiento la mayoriacutea de las computadoras recientes o no recientes pueden hacer uso de eacutel con los inconvenientes de que no ofrece fuertes garantiacuteas de seguridad pero esto carece de importancia debido a que la informacioacuten se considera puacuteblica

17

Objetivo Crear un sistema de consulta de fichas bibliograacuteficas remoto basado en terminales PXE para una biblioteca adaptando un servidor central y equipo informaacutetico en desuso para su instalacioacuten Objetivos particulares

Configuracioacuten de un sistema remoto usando PXE

Configuracioacuten y puesta en marcha de un servidor dedicado

Elaboracioacuten de un sistema de consulta bibliotecario

Configurar un sistema cliente-servidor para consulta de un catalogo de una biblioteca

Minimizar el costo por la implementacioacuten de este sistema

Motivacioacuten Intereacutes por aplicar apropiadamente la tecnologiacutea de software por ejemplo cuando en el desempentildeo de actividades se presenta un problema de lentitud de los equipos o mal funcionamiento siempre se toman medidas de solucioacuten como ampliacioacuten de memoria cambio de piezas escalamiento oacute sustitucioacuten total del equipo bueno eso siempre y cuando el presupuesto lo permita pero estas medidas aunque en algunos casos son mas que necesarias a veces parece una puerta ldquofaacutecilrdquo para solucionar este tipo de problemas el desarrollo de este trabajo en oposicioacuten a ello permite aplicar la ingenieriacutea de software y sobre todo permite apreciarla y comprender la potencia que representa el desarrollar software eficiente Por otro lado el aspecto de la sub-utilizacioacuten de los equipos de coacutemputo muchas veces equipos fabulosos potencialmente hablando son destinados a labores que pocas veces explotaraacuten los recursos del sistema para lo que fueron disentildeados y a medida que pasa el tiempo estos equipos pasan a la obsolescencia sin nunca desquitar su costo el propoacutesito de este trabajo permite destinar equipos que van envejeciendo unas veces por desgaste fiacutesico y otras por el surgimiento de nuevos equipos hacia el manejo de otras tareas donde puedan seguir funcionando de manera eficiente y oacuteptima siempre y cuando se apliquen en ellos los recursos de software apropiados ayudando a las empresas o

18

instituciones a adquirir o destinar los equipos potentes hacia aacutereas donde efectivamente se aprovecharan al maacuteximo representando un ahorro de gastos y alargando la vida uacutetil de sus equipos existentes Problemaacutetica Diacutea con diacutea equipos de coacutemputo en buenas condiciones teacutecnicas se ven desplazados por nuevos equipos los cuales soportan los mas recientes cambios en materia de software y de perifeacutericos haciendo que los equipos anteriores caigan en desuso antes de que su vida uacutetil termine convirtieacutendose por ello en ldquobasura informaacuteticardquo para las empresas e instituciones pero sin serlo auacuten ya que varios de sus componentes pueden todaviacutea ser explotados Contribucioacuten El valor o la contribucioacuten de este trabajo se concentra en tres aspectos

1- Ejemplifica una forma de extender la vida uacutetil de algunos equipos de coacutemputo catalogados como obsoletos desde Pentium III en adelante 2- Expone como aplicar el poderiacuteo del software de red y de los sistemas operativos 3- Explica como la integracioacuten de diversas teacutecnicas informaacuteticas tales como la implementacioacuten de sistemas centralizados conjuntaacutendose con la instalacioacuten de sistemas operativos adecuados y de la adaptacioacuten de ciertos protocolos de red a este propoacutesito pueden producir un sistema de consulta bibliograacutefica confiable y estable que cuente con un tipo de respuesta aacutegil que evita la sub-utilizacioacuten de equipos de coacutemputo lo que favorece el ahorro de gastos

Solucioacuten Para lograr lo anterior se llevaran a cabo las siguientes actividades

Se configuraraacute un servidor de aplicaciones

Se adaptaraacuten terminales para la consulta (clientes)

Adecuacioacuten de una pequentildea red ldquoestrellardquo

19

Configuracioacuten del sistema remoto con PXE

Elaboracioacuten de un sistema de consulta bibliotecario basado en

MySQL programado en Visual Basic Contenido de este trabajo En la parte de Antecedentes de este trabajo se plantea su objetivo describe la problemaacutetica existente y la contribucioacuten que se espera brindar Incluye una introduccioacuten sobre los tipos de acceso remoto que hasta el momento existen asiacute como las herramientas informaacuteticas que se utilizan en algunas bibliotecas para ofrecer el servicio de consulta de su acervo bibliograacutefico En el capiacutetulo 1 se habla sobre los sistemas cliente-servidor los tipos de configuracioacuten que se utilizan para su implementacioacuten desde la mas simple hasta la maacutes compleja Se explican los teacuterminos de arquitectura de red servidor y cliente se describe ademaacutes el papel que juegan cada uno de ellos Se detallan los elementos con que debe contar un buen servidor y sus clientes sus caracteriacutesticas teacutecnicas y requerimientos loacutegicos Se hace una aclaracioacuten especiacutefica de lo que se debe entender por ldquoservidorrdquo Se describen las caracteriacutesticas generales del software de servidor y el software de cliente Se detalla el funcionamiento de solicitud-respuesta y el flujo de informacioacuten Se explica coacutemo el servidor identifica el tipo solicitud se incluyen a su vez las variaciones en las que se emplea este tipo de modelo y se finaliza con las ventajas y desventajas de la implementacioacuten de esta arquitectura de sistemas centralizados El capiacutetulo 2 describe la potencialidad de los sistemas distribuidos y sus aplicaciones comunes se define el concepto de sistema distribuido sus seis caracteriacutesticas principales y su eficiencia Se plantean las diferencias entre sistemas con multiprocesadores multicomputadoras y sistemas distribuidos Se menciona la infraestructura necesaria para la implementacioacuten de estos sistemas ademaacutes de los servicios de red protocolos que requiere sus formas y funcionamiento Se define el concepto de Middleware su estructura en queacute y para que se emplea Se describen a continuacioacuten los sistemas que basan su funcionamiento en los beneficios que proporcionan los sistemas distribuidos Capiacutetulo 3 comprende una lista de los protocolos remotos explica su estructura funcionamiento y ejemplos de aplicacioacuten se hace eacutenfasis de la importancia de la

20

en la aplicacioacuten de tales protocolos y se finaliza con una explicacioacuten del protocolo PXE (Preboot eXecution Enviroment) su funcionamiento y los recursos de los que se vale para su ejecucioacuten destacando su trascendencia para este trabajo En el capiacutetulo 4 se relata el disentildeo y el desarrollo del sistema se enumeran las herramientas utilizadas para el avance del trabajo se precisa paso a paso la metodologiacutea teacutecnica seguida para el proceso de configuracioacuten y puesta en marcha del servidor la instalacioacuten del sistema operativo los aspectos que pueden entorpecer tal configuracioacuten y la solucioacuten adoptada que se siguioacute para el funcionamiento Se precisan los papeles que juegan los programas y protocolos empleados y la relevancia de tener un tipo de hardware apropiado Se adecuo y configuroacute el arranque desde una Terminal mediante el protocolo PXE que se encargaraacute de realizar las solicitudes al servidor se describen las pruebas efectuadas para esta primera implementacioacuten Este capitulo comprende tambieacuten las fases del desarrollo del sistema de consulta de biblioteca su programacioacuten en visual Basic su estructura en My SQL y los moacutedulos de que consta Altas Bajas tipos de buacutesqueda de informacioacuten y reportes en pantalla se precisan los comandos que incluye agregar borrar seleccionar etc Se sentildeala la integracioacuten del sistema de consulta con el sistema de arranque de la primera etapa describiendo las pruebas de fracaso y de eacutexito realizadas Finalmente se concreta implementado el sistema en una pequentildea sala de consulta adecuando una red ldquoestrellardquo con un conmutador cableado y terminales de consulta para apreciar la funcionalidad Para el capiacutetulo 5 y uacuteltimo se refiere a las conclusiones y aprendizaje que brindoacute el desarrollo del presente trabajo se establecen las puntos a seguir para mejorar esta implementacioacuten o su adaptacioacuten para otro tipo servicios bajo este mismo esquema Al final se incluye un apeacutendice con la explicacioacuten del funcionamiento de las formas de conexioacuten remota que se mencionan en la introduccioacuten y se complementa con las referencias bibliograacuteficas empleadas y glosario

21

CAPIacuteTULO 1

1 EL MODELO CLIENTE SERVIDOR 11 Definiciones arquitectura de red servidor y cliente El modelo cliente-servidor es un termino muy empleado en informaacutetica se recurre a eacutel cuando se habla de una arquitectura de red en la cual un sistema de computadoras realiza diferentes funciones para compartir recursos Para comprender su funcionamiento seraacute necesario definir los teacuterminos de ldquoarquitecturardquo ldquoclienterdquo y ldquoservidorrdquo Una arquitectura de red es un conjunto de componentes funcionales que se rigen bajo diferentes estaacutendares convenciones reglas y procesos admitiendo la integracioacuten de una amplia variedad de productos y servicios informaacuteticos de manera que puedan ser utilizados eficazmente dentro de una institucioacuten u organizacioacuten El teacutermino Servidor se aplica a cualquier programa que ofrece un servicio que puede ser ejecutado en red Un servidor acepta una solicitud en red ejecuta su servicio y regresa el resultado al solicitante Para los servicios maacutes simples cada solicitud llega en un soacutelo datagrama IP y el servidor regresa su respuesta en forma de otro datagrama Este servidor podraacute gestionar recursos tales como archivos e impresoras para que otras computadoras puedan acceder a ella a traveacutes de redes LAN oacute WAN Un cliente es aquel programa en ejecucioacuten que enviacutea una solicitud al servidor y espera una respuesta el requerimiento inicial puede convertirse en muacuteltiples requerimientos de trabajo a traveacutes de redes LAN o WAN La ubicacioacuten de los datos o de las aplicaciones es totalmente transparente para el cliente Es interesante sentildealar que estas definiciones no se refieren necesariamente a un dispositivo informaacutetico fiacutesicamente sino a que las peticiones y respuestas se llevan a cabo mediante un programa loacutegico Comuacutenmente los servidores son implementados como aplicaciones de programas La ventaja de implementar este tipo de servidores es que estos pueden ser ejecutados sobre cualquier sistema de comunicaciones que soporte TCPIP Por lo tanto el servidor para un servicio en particular puede ejecutarse sobre un sistema de cliente compartido junto con otros programas o puede ejecutarse sobre una computadora personal Muchos

22

servidores pueden ofrecer el mismo servicio y pueden ejecutarse en la misma computadora oacute en varias computadoras De hecho es comuacuten que los administradores hagan replicas de un servicio dado en computadoras fiacutesicamente independientes con el objetivo de incrementar la eficiencia o mejorar la ejecucioacuten La implementacioacuten de este modelo deriva de la necesidad de las instituciones oacute corporaciones de agilizar de forma eficiente el trabajo entre sus colaboradores minimizando costos apoyaacutendose en la integracioacuten de un sistema estable y confiable con la ventaja de que esta tecnologiacutea es adaptable en un sinnuacutemero de organizaciones sin importar el grado de complejidad de sus operaciones Siguiendo con la estructura de este modelo cada usuario tiene la libertad de obtener la informacioacuten que requiera en un momento dado proveniente de una o varias fuentes locales o distantes y de procesarla como seguacuten le convenga Los distintos servidores tambieacuten pueden intercambiar informacioacuten dentro de esta arquitectura Ver fig 11

Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows servidores de archivos como NFS (Network Files Server) servidores para el manejo de bases de datos como los servidores de SQL servidores de disentildeo y manufactura asistido por computadora etc[7]

Cliente

Enviar solicitud

Esperar Resultado

Continuar

Servidor

Esperar solicitud

Procesar informacioacuten

Enviar resultado

inicio

Fig 11 Arquitectura Cliente

23

12 Tipos de configuracioacuten del Modelo cliente-servidor Modelo cliente-servidor de un hilo (one tier) Esta es la estructura maacutes sencilla y maacutes didaacutectica de la implementacioacuten del modelo El cliente enviacutea una solicitud por un servicio y espera la respuesta de parte del servidor Ver fig 12

Fig 12 modelo cliente-servidor (one tier) Modelo cliente servidor de dos hilos (two tier) Este esquema de la fig 13 se llama de dos hilos porque basta con contar con una maacutequina que funcione como servidor para dar servicio a varias computadoras cliente

Fig 13 modelo cliente servidor two tier

solicitud

respuesta

servidor

cliente

24

Modelo cliente-servidor de tres hilos El esquema de la fig 14 presenta una estructura mas compleja consta de un servidor que proporciona cierto tipo de servicios locales pero ademaacutes puede hacer uso de otros servicios que bien pueden ser internos externos ya que estos sistemas pueden estar distribuidos en diferentes lugares Este esquema en realidad es una analogiacutea de la forma en que interactuacutea una red LAN con una red WAN [6]

Cliente servidor multi-hilos Este modelo de la fig 15 se presenta cuando los servidores actuacutean como clientes Los programas no siempre se configuran dentro de la definicioacuten de cliente o servidor Cuando procesan una respuesta a una peticioacuten un servidor puede necesitar acceder a otros servicios de red En esencia un servidor puede actuar como un cliente Por ejemplo suponiendo que el servidor de archivos necesita obtener la hora del diacutea puede asociar los archivos con el tiempo de acceso Ahora suponiendo que el sistema sobre el cual opera no tiene reloj Para obtener la hora el servidor puede actuar como cliente enviando una peticioacuten al servidor de la fecha y hora tal y como se muestra en la figura siguiente [6]

Servidor local Servidor central

clientes

Fig 14 modelo cliente servidor multi-hilos

25

Fig 15 modelo cliente servidor multi-hilos 13 Especificaciones teacutecnicas a seguir para la eleccioacuten del servidor Existe gran variedad de servidores como de archivos e impresioacuten de aplicaciones de web y maacutes Pero lo que siempre se debe tener en cuenta es que la gente depende de ellos y que en general son parte de un sistema de servicio de red Por consiguiente debido a que estos pueden ser utilizados por cientos de personas las computadoras que se utilizan como servidores necesariamente deben ser superiores a cualquier computadora anterior

26

Procesador Uno de los aspectos prioritarios en un servidor es sin duda el procesador Los servidores pueden operar mediante el empleo de uno o muchos procesadores pero para determinar con cuantos procesadores deberaacute contar el servidor elegido todo dependeraacute del sistema operativo de red que se instalaraacute y de si este soporta multiprocesamiento por ello algunas versiones de sistema operativo de red requieren de dos oacute cuatro procesadores otras trabajan con ocho y otras hasta con 32 y para los sistemas de 64 bits pueden llegar a emplear hasta 128 Si se desea instalar sistemas operativos como UNIX o Linux todo dependeraacute tambieacuten de las versiones que se manejen pues algunas soportan muacuteltiples procesadores pero otras no Otro aspecto que se debe considerar es el trabajo que realiza el servidor y si las tareas del mismo representan en este momento un cuello de botella para el procesador Los servidores de archivo y de impresioacuten pueden operar sin procesadores muacuteltiples a pesar de que se benefician de procesadores raacutepidos la ventaja no es tan grande Pero por el contrario es necesario de que cuenten con gran cantidad de memoria RAM y un subsistema de disco muy veloz Por otro lado los servidores de bases de datos consumen muchiacutesima capacidad del procesador y se beneficiaraacuten de tantos procesadores como sea posible que operen a la maacutexima velocidad posible es importante que el software del servidor de red se configure de tal forma que pueda hacer uso de varios procesadores Los servidores web tienden a ser modestos en cuanto a sus requerimientos de procesamiento pues dependen de buses raacutepidos conexiones de red maacutes raacutepidas mucha RAM discos raacutepidos solamente Un procesador raacutepido o muacuteltiples procesadores pueden ser magniacuteficos para un servidor web pero tambieacuten pueden estar subutilizado La administracioacuten de muacuteltiples procesadores requiere mucho trabajo del sistema operativo por esto tener el doble de procesadores en una computadora no duplica su capacidad de procesamiento solo puede mejorar la velocidad de la computadora soacutelo el 50 Para determinar el nuacutemero de procesadores que se deben utilizar para realizar cualquier tarea se debe consultar al fabricante del sistema operativo que se desee utilizar y con los fabricantes de las aplicaciones que se planeen ejecutar en el servidor

27

Capacidades de bus En la mayoriacutea de los servidores una de las funciones maacutes empleadas es el movimiento de datos Los servidores de archivos e impresioacuten necesitan dar servicio a cientos de archivos de manera simultaacutenea a cientos de usuarios y coordinar y manejar las necesidades de datos de todos ellos Los servidores de bases de datos deben administrar bases con capacidades de muchos gigabytes o terabytes y deben ser capaces de recuperar una gran cantidad de datos de sus bases y proporcionarlos a los usuarios en cuestioacuten de milisegundos Los servidores de aplicaciones deben llevar a cabo operaciones de uso intenso tanto del procesador como del disco y a la vez proporcionar servicios de aplicacioacuten a los usuarios Un bus es un elemento primordial de la transferencia de datos de un sistema de coacutemputo al que se conecta el procesador la memoria y todos los dispositivos instalados Todos estos componentes estaacuten conectados entre si por el bus del sistema por lo que es importante optimizar al maacuteximo esa parte de la computadora En realidad el bus debe manejar aproximadamente cinco veces maacutes datos que cualquier otro componente del sistema necesita hacerlo de la forma maacutes raacutepida posible Aunque es cierto que un bus PCI moderno puede manejar velocidades de 33MHZ a 32 bits este nivel no es suficiente en un servidor de alta capacidad Muchos servidores pueden manejar muacuteltiples NIC cada una a velocidades de hasta 100 Mbps o de 1 Gbps y muacuteltiples controladores de disco que corran a velocidades de hasta 40 Mbps si tales dispositivos se encuentran ocupados al mismo tiempo incluso un bus PCI se saturaraacute raacutepidamente Esta es la razoacuten por la cual los fabricantes estaacuten trabajando en vencer las limitaciones relativas a la velocidad del bus Los fabricantes utilizan varios esquemas para hacerlo como de utilizar varios buses en un solo sistema Memoria RAM La memoria RAM es otro aspecto importante en la adquisicioacuten de un servidor Los servidores dependen en gran medida de su capacidad de almacenar datos desde la red y desde los discos del servidor para lograr el mejor desempentildeo posible Para llevar acabo esto dependen en gran medida de la memoria de acceso aleatorio RAM Por ejemplo la mayoriacutea de los sistemas operativos de red almacenan en su memoria cacheacute todo el directorio de archivos para su raacutepido acceso Asimismo guardan los archivos requeridos en la memoria cacheacute por un periodo extenso en caso de que los datos que contienen se necesiten otra vez Ademaacutes escriben en el disco real de manera asiacutencrona por lo que los discos no representan un cuello de botella como lo seriacutean de otra forma En la mayoriacutea de los

28

servidores 512MB de RAM se considera miacutenimo aceptable En servidores de bases de datos de gran capacidad que soportan a cientos de usuarios se debe de instalar 1 GB a fin de lograr el mejor desempentildeo posible Subsistemas del disco Otro elemento a considerar en un servidor son los controladores de disco que son en general los componentes maacutes lentos en cualquier sistema y debido a que gran parte del trabajo involucra su intervencioacuten la probabilidad de que se presenten cuellos de botella es alta Y considerando que la informacioacuten almacenada en estos la mayoriacutea de las veces es de gran importancia es conveniente contar con la configuracioacuten de disco maacutes confiable La eleccioacuten de un servidor adecuado dependeraacute en gran del uso que queramos obtener de eacutel y del nuacutemero de usuarios que se veraacuten beneficiados de su servicio asiacute que se podraacute partir desde utilizar una computadora de escritorio comuacuten pero reciente y potente hasta la adquisicioacuten de los servidores dedicados disponibles en el mercado [4] 14 Especificaciones a seguir en la eleccioacuten de cliente Cuando se habla de computadoras clientes en este esquema nos estamos introduciendo en campo muy diverso debido a que en muchos casos esta eleccioacuten queda fuera del alcance del integrador de este sistema tal es el caso de los servidores web se supone que cualquier configuracioacuten de computadora que cuente con conexioacuten a Internet debe de poder conectarse con este tipo de servidores por lo tanto en estos casos la eleccioacuten en si es imposible soacutelo puede limitarse a establecer los requisitos teacutecnicos y de software con los que deben contar las computadoras para que la conexioacuten sea satisfactoria Pero si pensamos en el caso de una institucioacuten o una corporacioacuten en donde se desee establecer este tipo de esquema la eleccioacuten adecuada de las computadoras cliente seraacute indispensable para garantizar un servicio oacuteptimo para cada usuario El administrador del sistema podraacute decidir las configuraciones adecuadas que se adaptaraacuten mejor al esquema Esta eleccioacuten deberaacute comprender ciertos aspectos como asegurar la estabilidad de las computadoras clientes contemplado al menos un tiempo de vida uacutetil de cuatro a cinco antildeos que los componentes internos sean de calidad para minimizar las fallas de los equipos y con estos minimizar a la vez los gastos en reparacioacuten o mejor dicho el reemplazo de componentes que en muchos casos implican la sustitucioacuten de la computadora completa [4]

29

15 Paradigma Cliente-servidor El termino cliente-servidor es tambieacuten empleado en los sistemas distribuidos en este esquema se refiere a un modelo de aplicaciones de red donde los procesos toman una de dos funciones en el proceso servidor se gestiona el acceso a algunos servicios de la red mientras que los procesos cliente acceden al servidor para obtener un servicio de red En la arquitectura cliente-servidor los teacuterminos cliente y servidor estaacuten referidos a las computadoras mientras que en el paradigma de la computacioacuten distribuida los teacuterminos cliente servidor estaacuten referidos a los procesos Un proceso servidor se ejecuta en una computadora conectada a la red cuya funcioacuten es gestionar un servicio de red proporcionado por esa maacutequina Los procesos clientes se utilizan para acceder a un servicio en particular Es posible que otros procesos clientes se ejecuten en la maacutequina cliente al mismo tiempo pero debe usarse el proceso cliente adecuado para acceder a un servicio en particular El modelo cliente servidor esta disentildeado para proporcionar servicios de red los cuales son la aplicacioacuten mas utilizada en la computacioacuten distribuida Por servicio de red se entiende un servicio proporcionado para permitir a los usuarios de red compartir recursos estos recursos pueden ser de las mas simples a los mas complejos Entre los servicios mas estandarizados se encuentran el uso de Telnet que permite la conexioacuten en forma remota a una maquina servidor ftp empleado para el enviacuteo y recepcioacuten de archivos WWW (World Wide Web) para buscar informacioacuten web en una computadora servidor [1] Caracteriacutesticas de clientes y servidores

Aunque existen variaciones menores la mayor parte de las instancias de interaccioacuten cliente-servidor poseen las mismas caracteriacutesticas generales Por lo comuacuten el software del cliente

bull Es un programa de aplicacioacuten arbitrario que se vuelve cliente temporalmente cuando necesita acceso remoto pero tambieacuten lleva a cabo otro coacutemputo local

bull Lo llama directamente el usuario y se ejecuta soacutelo durante una sesioacuten

bull Se ejecuta localmente en la computadora personal de usuario

30

bull Inicia el contacto con el servidor bull Puede acceder a varios servicios seguacuten se necesite pero contacta

activamente con un servidor remoto a la vez bull No necesita hardware especial ni un sistema operativo complicado

El software de servidor

bull Es un programa privilegiado de propoacutesito especial dedicado a ofrecer un servicio pero puede manejar varios clientes remotos al mismo tiempo

bull Se inicia automaacuteticamente al arranque del sistema y continuacutea ejecutaacutendose en varias sesiones Opera en una computadora compartida (no se trata de una computadora personal)

bull Espera pasivamente el contacto de los clientes remotos bull Acepta el contacto de varios clientes pero ofrece un solo servicio bull Necesita un hardware poderoso y un sistema operativo complicado

Programas servidores y computadoras clase-servidor El termino servidor produce confusiones Formalmente se refiere a un programa que espera pasivamente una comunicacioacuten y no a la computadora en la que se ejecuta Sin embargo a una computadora que se dedica a ejecutar uno o varios programas servidores se le suele llamar incorrectamente servidor Los proveedores de hardware contribuyen a esta confusioacuten porque clasifican las computadoras de CPU raacutepida gran memoria y sistema operativo poderoso como maacutequinas servidoras El termino computadora clase servidor se refiere a una computadora poderosa que sirve para ejecutar software servidor Solicitudes respuestas y direccioacuten de flujo de datos La informacioacuten puede pasar en ambas direcciones entre el cliente y el servidor Por lo comuacuten el cliente transmite una solicitud al servidor y eacuteste da respuesta al cliente En algunos casos el cliente manda varias solicitudes y el servidor emite una serie de respuestas por ejemplo una base de datos cliente podriacutea permitir que un usuario busque maacutes de un elemento a la vez En otros casos el servidor ofrece salida continua sin ninguna solicitud y tan pronto como el cliente contacta con el servidor eacuteste inicia el enviacuteo de datos por ejemplo un servidor meteoroloacutegico transmite reportes continuos del clima con temperatura y presioacuten baromeacutetricas actualizadas Es importante entender que los servidores pueden aceptar la informacioacuten de entrada asiacute como entregar la informacioacuten de salida Por ejemplo casi todos los servidores de archivos estaacuten configurados para exportar a los

31

clientes un grupo de archivos Esto quiere decir que un cliente transmite una solicitud con un nombre de archivo y el servidor responde con una copia Sin embargo el servidor de archivos tambieacuten puede estar configurado para importar archivos El concepto puede resumirse asiacute

La informacioacuten puede fluir en ambas direcciones entre el cliente y el servidor Aunque muchos servicios acuerdan que el cliente mande solicitudes y el servidor responda son posibles otras interacciones

Servicios muacuteltiples en una computadora Una computadora suficientemente poderosa puede ejecutar varios clientes y servidores al mismo tiempo se necesitan dos capacidades Primero deben tener suficientes recursos de hardware procesador raacutepido y mucha memoria Segundo debe tener un sistema operativo que permita que varios programas de aplicacioacuten se ejecuten a la vez En tales sistemas se ejecuta un programa servidor por cada servicio ofrecido Por ejemplo una computadora podriacutea ejecutar un servidor de archivos y servidor web En la figura 16 se ilustran los clientes de dos computadoras que acceden a dos servidores de una tercera computadora Aunque una computadora puede operar varios servidores soacutelo se necesita una conexioacuten fiacutesica a la interred

Fig 16 Los clientes de dos computadoras que acceden a dos servidores de una tercera computadora

Cliente 1

transportacioacuten

interred

Interfaz de red

Cliente 2

transportacioacuten

interred

Interfaz de red

Cliente 1

transportacioacuten

interred

Interfaz de red

Servidor 2

interred

32

Es uacutetil que la computadora opere varios servidores pues de este modo varios servicios comparten el hardware La consolidacioacuten de servidores en una computadora grande clase servidor tambieacuten reduce la sobrecarga de la administracioacuten del sistema pues son menos las computadoras que hay que mantener Ademaacutes la experiencia ha demostrado que la demanda de servidores suele ser esporaacutedica cualquier servidor puede quedar en reposo por largos periodos por lo tanto si la demanda de servicios es escasa la consolidacioacuten de los servidores en una sola maacutequina disminuye los costos sin reducir significativamente el rendimiento En suma Una computadora clase servidor puede ofrecer varios servicios al mismo tiempo se necesita un programa servidor para cada servicio Es praacutectico ejecutar varios servidores en una sola computadora porque eacutestos no consumen recursos de coacutemputo mientras esperan solicitudes Identificacioacuten de los servicios Los protocolos de transportacioacuten ofrecen mecanismos para que los clientes especifiquen sin ambiguumledades el servicio deseado El mecanismo asigna a cada servicio un identificador uacutenico y requiere que tanto el cliente como el servidor lo utilicen Al comenzar la ejecucioacuten el servidor se registra con el protocolo local especificando el identificador del servicio que ofrece Cuando el cliente contacta con el servidor remoto especifica el identificador del servicio deseado Al hacer una solicitud el protocolo de transportacioacuten del servidor usa el identificador para determinar el programa servidor que manejaraacute la solicitud Por ejemplo el protocolo TCP (Protocolo de Control de Transmisioacuten) para identificar los servicios el TCP usa enteros de 16 bits conocidos como nuacutemeros de puerto de protocolo El TCP asigna un nuacutemero de puerto de protocolo uacutenico a cada servicio El servidor indica el nuacutemero de puerto del servicio que ofrece y espera una comunicacioacuten El cliente indica el nuacutemero de servicio deseado al transmitir una solicitud El TCP del servidor usa el nuacutemero de puerto de protocolo del mensaje de entrada para determinar el servidor que debe recibir la solicitud En resumen Los protocolos de transportacioacuten asignan a cada servicio un identificador uacutenico Tanto los clientes como los servidores indican el identificador de servicio el protocolo usa el identificador para dirigir las solicitudes de entrada al servidor adecuado Varias copias de un servidor para un solo servicio Teacutecnicamente se dice que los sistemas de coacutemputo que permiten la ejecucioacuten simultaacutenea de varios programas de aplicacioacuten manejan el

33

principio de concurrencia y que un programa con maacutes de un proceso se llama programa concurrente La concurrencia es fundamental en el modelo de interaccioacuten cliente-servidor porque un servidor concurrente sirve a varios clientes a la vez sin que un cliente tenga que esperar la terminacioacuten de otro Para entender la importancia del servicio simultaacuteneo podemos considerar lo que sucede si un servicio necesita bastante tiempo para satisfacer cada solicitud el nombre del archivo y el servidor le devuelve una copia Si el cliente solicita un archivo pequentildeo el servidor puede mandarlo completo en unos cuantos milisegundos Sin embargo pude necesitar varios minutos para transferir un archivo con imaacutegenes digitalizadas de alta resolucioacuten Si un servidor de archivos maneja una solicitud a la vez los demaacutes clientes deben esperar mientras el servidor transfiere un archivo a cada uno Por el contrario un servidor de archivos concurrente maneja varios clientes a la vez Al llegar una solicitud el servidor asigna la solicitud a un proceso que se ejecuta concurrentemente con los demaacutes procesos existentes En esencia cada solicitud la maneja una copia del servidor Asiacute las solicitudes breves son satisfechas con rapidez sin esperar la terminacioacuten de solicitudes mas grandes Creacioacuten de servidores dinaacutemicos Casi todos los servidores concurrentes operan dinaacutemicamente El servidor crea un proceso nuevo para cada solicitud De hecho el servidor esta compuesto de dos partes una que acepta las solicitudes y crea nuevos procesos para ellas y otra que consiste en el coacutedigo para manejarlas Al iniciar un servidor concurrente soacutelo se ejecuta la primera parte es decir el proceso principal del servidor ejecuta la primera parte que espera la llegada de una solicitud Al llegar el proceso principal crea un proceso nuevo que la maneja El proceso que maneja la solicitud ejecuta la segunda parte es decir la atiende y termina Mientras el proceso principal mantiene en funciones el servidor tras crear un proceso nuevo para manejar una solicitud el proceso principal espera la llegada de otra Si N clientes usan un servicio de una computadora hay N+1 procesos que ofrecen el servicio el proceso principal espera solicitudes adicionales y estaacuten interactuando N procesos de servicio con otros tantos clientes Resumiendo La ejecucioacuten concurrente es fundamental para los servidores porque permite que varios clientes aprovechen el servicio sin tener que esperar

34

que el servidor termine las solicitudes previas En los disentildeos de servidor concurrente el servidor crea un nuevo proceso para manejar cada cliente [4] Cuestiones sobre el paradigma Cliente servidor Mientras que el concepto de paradigma es sencillo en la implementacioacuten hay varias cuestiones que se deben de afrontar Sesioacuten de servicio Por sesioacuten se entiende la interaccioacuten que existe entre el servidor y el cliente en la sesioacuten el servicio gestionado por el servidor puede ser accesible a muacuteltiples clientes que quieran utilizar el servicio algunas veces de manera concurrente Cada cliente establece una sesioacuten propia con el servidor durante la cual existe una interaccioacuten bidireccional hasta que el cliente consiga el servicio La siguiente figura 17 ilustra el flujo de ejecucioacuten del proceso servidor Una vez que el proceso servidor ha comenzado se ejecuta un bucle continuo que acepta peticiones de las sesiones de los clientes Para cada cliente el servidor conduce una sesioacuten de servicio

El protocolo de un servicio

Inicio de servicio

Acepta la peticioacuten de sesioacuten de un

Gestiona una sesioacuten

Fig 17 Flujo de ejecucioacuten del proceso servidor

35

Se necesitan de ciertas convecciones para que durante la sesioacuten se pueda establecer la interaccioacuten entre el cliente y el servidor Estas normas especifican

1- Forma de conexioacuten del servicio 2- Secuencia de comunicacioacuten entre los procesos 3-Representacioacuten e interpretacioacuten de la informacioacuten intercambiada

1- Localizacioacuten del servicio El procedimiento que permite que un proceso cliente se conecte a un servidor para un determinado servicio surge de un esquema simple la conexioacuten de un servicio es estaacutetica y se puede identificar utilizando la direccioacuten del proceso servidor en teacuterminos de nombre de la maacutequina y el nuacutemero de puerto del protocolo asignado al proceso servidor Este es el esquema utilizado para los servicios de Internet tales como telnet ftp http donde a cada servicio de estos se le asigna un nuacutemero de puerto especiacutefico y reservado como normatividad tal es el caso del servicio de FTP a los que se le asignan dos nuacutemeros de puerto 20 y 21 y al http el puerto 80 A un nivel maacutes alto un servicio puede identificarse con un nombre loacutegico registrado en un directorio o en un registro El nombre loacutegico necesita traducirse a la ubicacioacuten fiacutesica del proceso servidor Si la traduccioacuten se ejecuta cuando se ejecuta el proceso cliente es posible que la conexioacuten del servicio sea dinaacutemica en este caso se dice que el servicio es transparente de la ubicacioacuten 2- Secuencia de comunicacioacuten entre procesos En el modelo cliente servidor la interaccioacuten de los procesos sigue un patroacuten de peticioacuten-respuesta Durante la sesioacuten un cliente hace una peticioacuten al servidor que contesta con una respuesta El cliente puede realizar una peticioacuten subsiguiente seguida por una respuesta del servidor Este patroacuten se puede continuar indefinidamente hasta que concluya la sesioacuten Por cada peticioacuten solicitada el cliente debe esperar por la respuesta de parte del servidor antes de continuar El dialogo de cada sesioacuten sigue un patroacuten descrito en el protocolo especificado para el servicio Cualquier implementacioacuten del programa cliente o servidor debe apegarse a la especificacioacuten del protocolo incluyendo coacutemo deberiacutea proceder el diaacutelogo a cada sesioacuten Entre otras cosas la especificacioacuten define la secuencia de las intercomunicaciones entre el cliente y el servidor la sintaxis y la semaacutentica de cada peticioacuten y

36

respuesta y la accioacuten esperada en cada lado al recibir una peticioacuten o respuesta determinada Un diagrama de secuencia es un buen procedimiento para documentar las comunicaciones entre procesos durante la sesioacuten de servicio 3- Representacioacuten de datos La forma de eleccioacuten de traduccioacuten e interpretacioacuten de datos depende de la naturaleza del protocolo Las especificaciones el formato o sintaxis de la marca de tiempo se deja a criterio del integrador La eleccioacuten de representar datos en modo texto para un protocolo tiene la ventaja de permitir que el diaacutelogo sea legible para todos por lo que se puede utilizar ES en modo texto estaacutendar para mostrar datos intercambiados Servicio de red Existen dos conjuntos de software involucrados en un servicio de red uno para el proceso cliente y otro para el proceso servidor Software de lado cliente- Es el conjunto de programas que se requieren en la computadora cliente y su ambiente de apoyo en tiempo de ejecucioacuten Software de lado servidor- Es el conjunto de programas incluyendo al programa servidor y todos los entornos de apoyo que se requieren en tiempo de ejecucioacuten La complejidad en los servidores En la praacutectica los servidores son mucho maacutes difiacuteciles de implementar que los clientes debido a que ellos necesitan acomodar muacuteltiples peticiones concurrentes auacuten en el caso de que se trate de una sola peticioacuten a este le toma un tiempo considerable para procesarla Por ejemplo si se toma el ejemplo del servicio de transferencia de un archivo cuya responsabilidad es copiar un archivo en otra computadora Tiacutepicamente los servidores tienen dos partes un solo programa que es el responsable de aceptar nuevas peticiones y un conjunto de programas esclavos que son los responsables de manejar las solicitudes de forma individual El servidor entonces ejecuta los siguientes cinco pasos Apertura del puerto (open port) El proceso maestro abre el mejor puerto conocido que esta maacutes a su alcance Esperar al cliente (wait for client) El proceso maestro espera la peticioacuten de un nuevo cliente

37

Selecciona el puerto (Choose port) Si necesariamente el maestro destina un nuevo puerto local para esta peticioacuten y le informa al cliente Comienzo del proceso esclavo (Start Slave) El proceso maestro comienza su funcioacuten de manera independiente de forma concurrente el proceso esclavo tambieacuten maneja esta solicitud Cabe sentildealar que cuando el proceso maneja una peticioacuten y la termina este no espera solicitudes de otros clientes Continua (Continue) El maestro regresa al paso de espera (wait) y continua aceptando nuevas peticiones mientras el proceso esclavo maneja las peticiones previas de forma concurrente Por cada proceso maestro que comienza un proceso replica comienza un procesamiento concurrente Asiacute que las peticiones que requieren poco tiempo para completarse pueden terminar antes que las peticiones maacutes largas independientemente del orden en que estas empezaron Por ejemplo suponiendo que un primer cliente se conecta con un servidor de archivos que solicita transferir un archivo largo que requieren de varios minutos Si un segundo cliente se conecta al mismo servidor y solicita transferir un archivo que soacutelo tomaraacute algunos segundos en completarse la segunda transferencia podraacute comenzar y completarse mientras la primera transferencia se procesa En resumen la complejidad que resulteacute de que los servidores manejen peticiones concurrentes tambieacuten se hace maacutes compleja debido a que los servidores deben hacer cumplir reglas de autorizacioacuten y proteccioacuten Los servidores de programas comuacutenmente necesitan ejecutarse con mayores privilegios debido a que ellos deben leer archivos de sistemas guardar claves y acceso a la proteccioacuten de datos El sistema operativo no restringiraacute un servidor de programa si intenta acceder a los archivos de usuarios Asiacute los servidores no pueden ciegamente aceptar peticiones desde otros sitios En vez de ello cada servidor toma la responsabilidad de hacer cumplir las poliacuteticas de proteccioacuten de datos para acceder al sistema Finalmente los servidores deben protegerse ellos mismos contra peticiones malintencionadas o contra peticiones que causaran que el servidor de programa se aborte Frecuentemente es difiacutecil prever problemas potenciales

38

Los servidores son comuacutenmente mas difiacuteciles de configurar que los clientes porque aunque ellos pueden ser implementados con aplicaciones de programas los servidores deben hacer cumplir ademaacutes las poliacuteticas de proteccioacuten de datos para el acceso al sistema los cuales corren y deben protegerse asimismo contra todos los posibles errores [2] 16 Variaciones en el modelo cliente-servidor Se aprecian distintas variaciones del modelo cliente-servidor dependiendo de la consideracioacuten de los factores siguientes El uso de coacutedigo moacutevil y agentes moacuteviles La necesidad de los usuarios de computadoras de bajo costo y con recursos hardware limitados que son muy sencillos de manejar El requisito de antildeadir o eliminar de una forma conveniente dispositivos moacuteviles Coacutedigo moacutevil El teacutermino coacutedigo moacutevil se emplea para referirse al coacutedigo que puede ser enviado desde una computadora a otra y ejecutarse en esta Pero debido a que el conjunto de instrucciones de una computadora depende del hardware el coacutedigo de nivel de maacutequina adecuado para correr en un tipo de computadora no es adecuado para ejecutarse en otro tipo Una ventaja de ejecutar el coacutedigo descargado localmente es que puede proporcionar una buena respuesta interactiva puesto que no sufre de los retardos ni de las variaciones del ancho de banda asociados a la red Acceder a los servicios significa ejecutar coacutedigo que pueda invocar sus operaciones Algunos servicios son ya de uso tan comuacuten que se puede acceder a ellos mediante una comunicacioacuten web pero auacuten en este caso muchas existen funciones que a veces los navegadores no soportan y requieren descargar coacutedigo adicional Agentes moacuteviles Un agente moacutevil es un programa en ejecucioacuten que incluye tanto coacutedigo como datos que se traslada de una computadora a otra en la red utilizando una labor para alguien por ejemplo recolectando informacioacuten y regresando eventualmente los resultados Un agente moacutevil puede hacer muchas solicitudes a los recursos locales de los sitios que visita como por ejemplo una base de datos Si se compara esta arquitectura con un cliente estaacutetico que realiza solicitudes de algunos recursos transfiriendo posiblemente grandes

39

cantidades datos hay una reduccioacuten en el costo de la comunicacioacuten y en el tiempo con la sustitucioacuten de las solicitudes remotas por las locales Los agentes moacuteviles son una amenaza potencial de seguridad para los recursos de las computadoras que la visitan El entorno que recibe el agente moacutevil debe decidir a cual de los recursos locales le estaraacute permitido tener acceso en base a la identidad del usuario en cuyo nombre esta actuando el agente la identidad de este debe incluirse de una forma segura en el coacutedigo y los datos del agente moacutevil Ademaacutes los agentes moacuteviles pueden ser vulnerables y pueden no ser capaces de finalizar su tarea si se les niega el acceso a la informacioacuten que necesitan Las tareas realizadas por agentes moacuteviles pueden realizarse por otros medios Por ejemplo los escaladores web que necesitan acceder a recursos en servidores web a traveacutes de Internet trabajan muy bien realizando invocaciones remotas a los procesos del servidor Por esta razoacuten la aplicabilidad de agentes moacuteviles puede ser limitada Computadoras en red Para hablar de este punto es preciso sentildealar una problemita por ejemplo el sistema operativo y el software de aplicacioacuten para computadoras de oficina necesitan normalmente de gran parte del coacutedigo y que los datos activos esteacuten ubicados en un disco local Pero el manejo de archivos de aplicacioacuten y el mantenimiento del software de base local precisan un esfuerzo teacutecnico considerable y una naturaleza que la mayoriacutea de los usuarios no estaacuten calificados para proporcionarlo Para solucionar este problema existe la computadora de red Descarga su sistema operativo y cualquier aplicacioacuten software que necesite el usuario desde un servidor de archivos remoto Las aplicaciones se lanzan localmente pero los archivos se gestionan desde un servidor de archivos los usuarios pueden migrar de un computador de red a otro Las capacidades del procesador y de memoria de una computadora de red pueden restringirse con el fin de reducir costos Si se incluyera un disco este almacenariacutea un software miacutenimo el resto del disco restante se ocupariacutea como unidad de almacenamiento intermedia (cacheacute) manteniendo copias de los archivos de programas y datos que hayan sido cargados recientemente desde los servidores El mantenimiento de la cacheacute no precisan esfuerzo manual alguno los objetos en la cacheacute se invalidan cuando se escribe una nueva versioacuten del archivo en el servidor relevante Clientes ligeros Es un teacutermino que se refiere a una capa de aplicacioacuten que soporta una interfaz de usuario basada en sistema de ventanas en una computadora local de usuario mientras se ejecutan programas de aplicacioacuten en una

40

computadora remota Este tipo de arquitectura sigue la misma forma de gestioacuten de recursos y de hardware que el sistema de computadora de red pero en lugar de descargar el coacutedigo de las aplicaciones en la computadora del usuario se ejecutan en un servidor de coacutemputo esta es una computadora con capacidad de ejecutar muchas aplicaciones de forma simultaacutenea El servidor de coacutemputo seraacute normalmente un multiprocesador o un sistema de computadoras acopladas y ejecuta una versioacuten multiprocesador de un sistema operativo como UNIX La principal desventaja de este sistema es cuando se utilizan aplicaciones graacuteficas o gestioacuten de imaacutegenes que requieren interactuar constantemente con el servidor imaacutegenes vectoriales por lo que existen retrasos en la red y el sistema operativo Dispositivos moacuteviles y enlace espontaacuteneo a red Cada vez mas la vida moderna hace uso de los nuevos dispositivos tecnoloacutegicos moacuteviles en materia de comunicaciones muchos de estos dispositivos permiten la conexioacuten a la red de forma inalambrica ya sea de rango metropolitano oacute mas grandes (GSM CDPD) cientos de metros (Wavelan) o unos pocos metros (Blue Tooth infrarrojos y HomeRF) Las redes de rango maacutes pequentildeo tienen anchos de banda del orden de 10 megabitssegundo Con la integracioacuten apropiada a los sistemas distribuidos estos dispositivos dan soporte para la computacioacuten moacutevil en la que los usuarios llevan sus dispositivos moacuteviles entre los entornos de red y se benefician de los servicios locales y remotos seguacuten se mueven A la forma de distribucioacuten que integra dispositivos moacuteviles y otros dispositivos en una red se le llama enlace a red espontaacuteneo Sistema de ventanas X-11 El sistema de ventanas x-11 es un proceso que gestiona la pantalla y los dispositivos interactivos de entrada del computador en la que se ejecuta X-11 proporciona una amplia biblioteca de procedimientos para mostrar en pantalla y modificar objetos graacuteficos en ventanas asiacute como para la creacioacuten modificacioacuten de las ventanas Al sistema x-11 se le referencia como un proceso servidor de ventanas Los clientes del servidor son los programas de aplicacioacuten [7] 17 Alternativas al modelo cliente servidor El modelo cliente servidor los programas comuacutenmente actuacutean como clientes cuando requieren informacioacuten pero algunas veces es importante minimizar tales interacciones Ver fig 18

41

Privilegios y complejidad Para ejecutar computacioacuten y regresar resultados el software de servidor frecuentemente necesita acceder a objetos que operan sistemas protegidos tales como archivos bases de datos componentes oacute puertos de protocolos Consecuentemente el servidor de software usualmente corre con privilegios especiales del sistema En general un servidor contiene coacutedigo que controla varios aspectos que pueden ser agrupados bajo rubros de seguridad Autenticidad- Verifica la identidad del cliente Autorizacioacuten- Determina que a un cliente dado le sea permitido el acceso al servicio Seguridad de datos- Garantiza que los datos no sean revelados sin intencioacuten Privacidad- Mantiene informacioacuten sobre los accesos no autorizados Proteccioacuten- Garantiza que las aplicaciones de red no sobrecarguen los recursos del sistema Los servidores pueden manejar grandes voluacutemenes de datos y operar de forma eficiente si ellos manejan las peticiones de forma concurrente La combinacioacuten de privilegios especiales y operacioacuten concurrente comuacutenmente hace que los servidores sean mucho maacutes difiacuteciles de configurar e implementar que los clientes

cliente Servidor de archivos

Servidor de procesos

Servidor de terminales

Maacutequina 1 Maacutequina 2 Maacutequina 3 Maacutequina 4

red

kernel kernel kernel kernel

Mensaje cliente servidor

Fig 18 Modelo cliente ndash servidor en un sistema distribuido

42

Identificando un cliente Los servidores se valen de dos formas para identificar clientes del fin de punto y de soportes El identificador de fin de punto tiene la ventaja de operar automaacuteticamente porque el mecanismo depende maacutes de los protocolos de transporte que de los protocolos de aplicacioacuten Para usar el identificador de fin de punto el servidor solicita a la capa inferior del protocolo de transporte que proporcione informacioacuten de identificacioacuten cuando una peticioacuten llega Tal informacioacuten puede ser por ejemplo la direccioacuten IP del cliente y el nuacutemero de puerto del protocolo El servidor entonces utiliza la informacioacuten del fin de punto para identificar una seccioacuten en particular en su tabla de estado Desafortunadamente la informacioacuten de fin de punto puede cambiar Por ejemplo si se produce una falla en la red esto obliga al cliente a abrir una nueva conexioacuten TCP y entonces el servidor no seraacute capaz de relacionar la nueva conexioacuten con la informacioacuten anterior Una alternativa al identificador de fin de punto es un soporte denominados handles que tiene la ventaja que puede permanecer constante a traveacutes de muacuteltiples conexiones de transporte Tiene la desventaja de que esta es visible en la aplicacioacuten En esencia un soporte es una abreviacioacuten utilizada entre el cliente y el servidor Cuando el cliente enviacutea una peticioacuten el cliente especifica informacioacuten completa El servidor asigna una entrada en su tabla de estado y genera un pequentildeo identificador para la entrada llamada handle El servidor enviacutea un handle de regreso al cliente para ser utilizada en peticiones subsecuentes Cuando se enviacutea una peticioacuten el cliente puede usar el andel en lugar de de un nombre de archivo largo debido a que estos son independientes de la capa del protocolo de transporte un cambio en la conexioacuten no invalida los handles Un servidor no puede retener su estado por siempre Cuando el cliente comienza el acceso el servidor asigna una pequentildea cantidad de sus recursos locales por ejemplo la memoria del cliente Si nunca desocupa esos recursos el servidor eventualmente finalizaraacute uno oacute maacutes recursos Por ejemplo si el servidor de archivos termina de utilizar un archivo el cliente debe de enviar un mensaje informando al servidor que no necesitaraacute por maacutes tiempo el archivo En respuesta el servidor remueve la informacioacuten almacenada y pone a disposicioacuten la tabla de estado para otro cliente [7]

43

18 Ventajas y desventajas del modelo cliente-servidor Ventajas

- Miacutenima oacute escasa probabilidad de peacuterdida de informacioacuten ya que la responsabilidad del proceso de respaldo recae sobre los administradores del sistema

- existencia de plataformas de hardware cada vez maacutes baratas Esta constituye a su vez una de las maacutes palpables ventajas de este esquema la posibilidad de utilizar maacutequinas considerablemente maacutes baratas que las requeridas por una solucioacuten centralizada basada en sistemas grandes Ademaacutes de lo anterior se pueden utilizar componentes tanto de hardware como de software de varios fabricantes lo cual contribuye considerablemente a la reduccioacuten de costos y favorece la flexibilidad en la implantacioacuten y actualizacioacuten de soluciones

- Eficiencia y agilidad en el servicio gracias a la facultad de que las peticiones las puedan atender diferentes servidores lo que asegura su confiabilidad ya que si un servidor ldquocaerdquo no significa que el sistema deje de funcionar

- Las tareas de mantenimiento como las copias de seguridad y restauracioacuten de los datos son maacutes sencillas porque estaacuten concentradas en el servidor central

- Minimizar costos de operacioacuten y de tiempo por la funcioacuten de compartir perifeacutericos y datos

- Menor uso del ancho de banda de la red debido a que los procesos se ejecutan directamente en el servidor y soacutelo se enviacutea la respuesta hasta que el proceso arroja un resultado minimizando con ello el traacutefico de red

- Se evita la duplicidad de informacioacuten al existir una sola copia de la informacioacuten

- El servidor puede estar situado en una ubicacioacuten relativamente segura y estar equipado con dispositivos como Sistemas de alimentacioacuten ininterrumpida (SAI) lo que resulta maacutes econoacutemico que si se protegieran todos los clientes

- El servidor se puede configurar para optimizar la capacidad de ES de disco necesaria para obtener los datos y los clientes se pueden configurar para optimizar el formato y presentacioacuten de los datos obtenidos desde el servidor

- Las reglas de la organizacioacuten y las reglas de seguridad se pueden definir una sola vez en el servidor para todos los usuarios Esto se puede hacer en una base de datos mediante el uso de restricciones procedimientos almacenados y desencadenadores Tambieacuten se puede hacer en una aplicacioacuten de servidor

44

Desventajas

- Las aplicaciones graacuteficas pueden producir lentitud en la red - No se pueden implementar niveles de seguridad alta en el sistema - Se requiere de personal calificado para administrar este tipo de

sistemas debido a que el grado de dificultad para configurar e instalar las aplicaciones requeridas para el funcionamiento oacuteptimo es complicado

- se cuenta con muy escasas herramientas para la administracioacuten y ajuste del desempentildeo de los sistemas

- hay que tener estrategias para el manejo de errores y para mantener la consistencia de los datos

Las ventajas de la adaptacioacuten del modelo cliente-servidor a nivel industrial corporativo e institucional saltan a la vista tolerancia a fallos alta disponibilidad de la informacioacuten local menor costo global maacutes facilidad para escalar el software o el hardware etc Sin embargo desde el punto de vista del desarrollo de aplicaciones surgen nuevos conceptos y necesidades y se requiere alguna forma de estructurar los desarrollos El modelo ClienteServidor sirve de armazoacuten ideal para dotar a las aplicaciones de una estructura loacutegica y minimizar la atencioacuten en detalles baacutesicos [4]

45

CAPIacuteTULO 2

2 SISTEMAS DISTRIBUIDOS 21 Diferentes formas de Computacioacuten Computacioacuten monoliacutetica Desde el nacimiento del estudio de los sistemas de coacutemputo siempre se ha buscado mayor potencia de coacutemputo y por maacutes que se tenga al parecer esta nunca es suficiente En sus oriacutegenes la computacioacuten se llevaba a cabo con un solo procesador a esto se le llamoacute computacioacuten monoliacutetica debido a que se utilizaba una unidad central de proceso para ejecutar uno oacute mas programas por cada proceso Al principio se utilizaban computadoras aisladas cada una de las cuales era capaz de ejecutar programas almacenados La conexioacuten de computadoras aisladas de forma que los datos se pudieran intercambiar fue una progresioacuten natural La conexioacuten rudimentaria de computadoras a traveacutes de cables fue utilizada en los antildeos 60 para la comparticioacuten de archivos Pero esta praacutectica requiere de intervencioacuten manual y no puede denominarse aplicacioacuten de computacioacuten a uno oacute maacutes programas que se ejecutan de forma autoacutenoma con el objetivo de realizar una determinada tarea Esta aplicacioacuten requiere comunicacioacuten de datos donde dos computadoras intercambian datos espontaacuteneamente y utilicen determinados software y hardware para la realizacioacuten de las tareas inherentes de tal aplicacioacuten El RFC (Request For Comments) de Internet RFC 1 es una propuesta que especiacutefica como las maacutequinas participantes pueden intercambiar informacioacuten con otras a traveacutes del uso de mensajes Mientras pudiera haber intentos individuales de crear aplicaciones de red a pequentildea escala la primera aplicacioacuten de red fue el correo electroacutenico ya que el primer mensaje fue enviado y registrado en 1972 en la red ARPANET de cuatro nodos Los mecanismos de transferencia de archivos automatizados que permiten el intercambio de archivos de datos entre las maacutequinas supusieron otra progresioacuten natural y para 1971 hubo una propuesta para dicho tipo de mecanismo A la fecha la transferencia de archivos y el correo electroacutenico son dos de las aplicaciones mayormente utilizadas sin embargo la aplicacioacuten de red maacutes utilizada es sin duda la World Wide Web www La red fue concebida originalmente a finales de los antildeos 80 por

46

cientiacuteficos del centro de investigacioacuten suizo CERN en Ginebra como una aplicacioacuten que permite el acceso a hipertexto sobre una red [7] Definicioacuten de sistema distribuido Se define a un sistema distribuido como una coleccioacuten de computadoras autoacutenomas unidas mediante una red con software disentildeado para producir computacioacuten integrada Los sistemas distribuidos son similares a las multicomputadoras en cuanto a que cada nodo tiene su propia memoria privada sin memoria fiacutesica compartida en el sistema Sin embargo los sistemas distribuidos estaacuten acoplados con maacutes debilidad auacuten que las multicomputadoras [7]

Los nodos de una multicomputadora por lo regular tienen una CPU RAM una interfaz de red y quizaacutes de un disco duro para paginar En contraste cada nodo de un sistema distribuido es una computadora completa con un surtido completo de perifeacutericos Ademaacutes los nodos de una multicomputadora generalmente estaacuten en el mismo recinto para poder comunicarse por medio de una red dedicada de alta velocidad mientras que los nodos de un sistema distribuido podriacutean estar dispersos por todo el mundo Por uacuteltimo todos los nodos de una multicomputadora ejecutan el

Red de aacuterea local

Estaciones de trabajo Computadoras personales

Servidores de archivos Servidores de impresioacuten y otros

Red WAN

Fig 21 Esquema de un sistema distribuido sencillo

47

mismo sistema operativo comparten el mismo sistema de archivos y estaacuten sometidos a una administracioacuten comuacuten mientras que los nodos de un sistema distribuido podriacutean ejecutar sistemas operativos distintos cada uno tiene su propio sistema de archivos y estaacuten bajo diferentes administraciones Ver fig 21 De esto al parecer surgen las comparaciones entre las multicomputadoras y los multiprocesadores y entre las multicomputadoras y los sistemas distribuidos Estas semejanzas pueden aclararse en cierta forma Desde el punto de vista teacutecnico los multiprocesadores tienen memoria compartida y los otros dos no Sin embargo desde el punto de vista de las aplicaciones los multiprocesadores y las multicomputadoras no son maacutes que grandes sitios de almacenamiento llenos de equipos en un cuarto de maacutequinas Ambos se usan para resolver problemas computacionales intensivos mientras que un sistema distribuido que conecta computadoras por Internet suele ocuparse maacutes de la comunicacioacuten que de coacutemputo y se emplea de diferente manera El acoplamiento deacutebil de las computadoras en un sistema distribuido es tanto una ventaja como una desventaja Es una ventaja porque las computadoras pueden utilizarse para una gran variedad de aplicaciones pero es una desventaja porque la programacioacuten de esas aplicaciones se dificulta por la falta de un modelo comuacuten Entre las aplicaciones tiacutepicas estaacuten el acceso a computadoras remotas empleando Telnet y rlogin el acceso a informacioacuten remota utilizando World Wide Web y FTP el sistema de transferencia de archivos la comunicacioacuten de persona a persona mediante correo electroacutenico y programas de conversacioacuten y muchas aplicaciones maacutes que estaacuten surgiendo como el comercio electroacutenico telemedicina y aprendizaje a distancia El problema con estas aplicaciones es que cada una de ella tiene que empezar siempre desde el principio Por ejemplo para la transferencia de archivos los sistemas www y FTP hacen lo mismo pero cada uno tiene su propia forma de hacerlo con sus propias convenciones para asignar nombres sus propios protocolos de transferencia sus propias teacutecnicas de replicacioacuten etc Aunque muchos navegadores web ocultan estas diferencias para que el usuario comuacuten no las perciba los mecanismos implicados son distintos completamente Lo que los sistemas distribuidos antildeaden a la red es un modelo comuacuten que ofrece una manera uniforme de ver todo el sistema La intencioacuten del sistema distribuido es convertir un grupo de maacutequinas deacutebilmente conectadas en un sistema ordenado basado en un solo concepto En ocasiones el modelo es sencillo

48

pero otras veces es complicado En todos los casos el objetivo es proporcionar algo que unifique el sistema Una forma en que un sistema distribuido puede lograr cierto grado de uniformidad pese al hecho de que el hardware y los sistemas operativos sean distintos es antildeadiendo una capa de software por arriba del sistema operativo Esta capa llamada middleware se ilustra en la fig 22

La capa proporciona ciertas estructuras de datos y operaciones que permiten a procesos y usuarios de maacutequina muy dispersas operar en forma consistente En cierto sentido el middleware es como el sistema operativo de un sistema distribuido Computacioacuten paralela Tambieacuten llamada procesamiento paralelo debido a que utiliza maacutes de un procesador simultaacuteneamente para ejecutar un uacutenico programa Idealmente el procesamiento paralelo permite que un programa ejecute maacutes raacutepido porque hay maacutes motores ejecutaacutendolo En la praacutectica suele ser difiacutecil dividir un programa de forma que cpu separadas ejecuten diferentes porciones de programa sin ninguna interaccioacuten La computacioacuten paralela se suele realizar sobre una uacutenica computadora que tiene muacuteltiples CPU aunque tambieacuten es posible llevar acabo procesamiento paralelo mediante la conexioacuten de varias computadoras en una red Sin embargo este disentildeo requiere de la aplicacioacuten de software muy sofisticado denominado software de procesamiento distribuido

Aplicacioacuten

Middleware

windows

pentium

Aplicacioacuten

Middleware

Linux

pentium

Aplicacioacuten

Middleware

Solaris

pentium

Aplicacioacuten

Middleware

Mac OS

pentium

red

Base comuacuten para las aplicaciones

Fig 22 Ubicacioacuten del middleware en un sistema distribuido [6]

49

Mediante la computacioacuten paralela se pueden resolver problemas que seriacutean imposibles de resolver con una sola computadora Tambieacuten permite la resolucioacuten de problemas de computacioacuten intensiva que de otra forma seriacutean insostenibles econoacutemicamente Actualmente la computacioacuten paralela se utiliza principalmente en la computacioacuten cientiacutefica a gran escala en aacutereas como la biologiacutea la aeronaacuteutica meteorologiacutea y el disentildeo de semiconductores [7] 22 Elementos esenciales en un sistema distribuido Hardware de red Los sistemas distribuidos se construyen sobre redes de computadoras Existen dos tipos principales de redes Las redes de aacuterea local LAN que abarcan un edificio o un campus y la redes de aacuterea amplia WAN que pueden abarcar una ciudad un paiacutes o incluso todo el mundo El tipo maacutes importante de LAN es ethernet Ethernet La ethernet claacutesica de la norma IEEE 8023 consiste de un cable coaxial al que estaacuten conectadas varias computadoras El cable se denomina ethernet como referencia al eacuteter luminiacutefero por el que alguna vez se pensoacute que se propagaban las ondas electromagneacuteticas Para enviar un paquete por ethernet lo primero que hace una computadora es ldquoescucharrdquo en el cable para ver si otra computadora estaacute transmitiendo Si no escucha nada inicia la transmisioacuten del paquete que consta de un encabezado corto seguido de una carga uacutetil de 0 a 1500 bytes Si el cable estaacute en uso la computadora simplemente espera hasta que termine la transmisioacuten actual y luego comienza a transmitir Si dos computadoras empiezan a transmitir al mismo tiempo se produce una colisioacuten la cual es detectada por ambas Las dos responden suspendiendo sus transmisiones esperando un lapso aleatorio entre 0 y T micros e intentando otro otra vez Si se presenta otra colisioacuten todas las computadoras implicadas aleatorizan su espera dentro de un intervalo de 0 a 2 T micros y vuelven a intentarlo En cada colisioacuten subsiguiente se aumenta al doble el intervalo de espera maacuteximo a fin de reducir la posibilidad de que haya colisiones Este algoritmo se denomina retroceso exponencial binario Una Ethernet tiene una longitud maacutexima de cable y tambieacuten un nuacutemero maacuteximo de computadoras que pueden conectarse a ella Para exceder

50

cualquiera de esos limites un edificio o un campus grande puede cablearse con muacuteltiples ethernets que entonces se conectan con dispositivos llamados puentes Un puente permite el paso de traacutefico de una Ethernet a otra cuando el origen esta en lado del puente Y el destino estaacute en el otro Para evitar el problema de las colisiones las ethernets modernas utilizan conmutadores Cada conmutador tiene cierto nuacutemero de puertos a los cuales puede conectarse otra computadora una Ethernet u otro conmutador Si un paquete logra evitar todas las colisiones y llega al conmutador se coloca ahiacute en el bufer y se reenviacutea por el puerto en el que reside la maacutequina destino Si a cada computadora se le asigna un puerto propio pueden eliminarse todas las colisiones pero se requieren conmutadores maacutes grandes Tambieacuten puede establecerse un acomodo con soacutelo unas computadoras por puerto Internet Consta de dos computadoras anfitrionas anfitriones (hosts) y enrutadores (routers) Los anfitriones son computadoras personales laptops palms servidores mainframes y demaacutes computadoras que deseen conectarse a internet Los enrutadores son computadoras de conmutacioacuten especializadas que aceptan paquetes recibidos por una de las muchas liacuteneas de entrada y los reenviacutean por una de las muchas liacuteneas de salida Los enrutadores se conectan entre si para formar grandes redes y cada enrutador tiene cables o fibras que conducen a otros enrutadores y anfitriones Las grandes redes nacionales o mundiales de enrutadores son operadas por las compantildeiacuteas telefoacutenicas y los proveedores de servicios de Internet ISP para dar servicio a sus clientes Todo el traacutefico de Internet se trasmite en forma de paquetes Cada paquete lleva en su interior su direccioacuten destino utilizada para enrutarlo Cuando un paquete llega a un enrutador esta extrae la direccioacuten de destino y consulta un parte de ella en una tabla para averiguar por cual liacutenea de salida debe reenviarlo y por lo tanto a cuaacutel enrutador Este procedimiento se repite hasta llega al anfitrioacuten de destino Las tablas de enrutamiento son muy dinaacutemicas y se actualizan de manera continua cuando los enrutadores y enlaces fallan y se recuperan y a medida que cambian las condiciones de traacutefico [8]

51

23 Servicios y protocolos de red Todas las computadoras prestan ciertos servicios a sus usuarios (anfitriones y procesos) que implementan aplicando ciertas reglas que definen los intercambios de mensajes validos Servicios de red Las redes de computadoras prestan servicios a los anfitriones y procesos que los usan El servicio orientado a conexiones sigue el sistema de modelo telefoacutenico Para hablar con alguien levantamos el auricular marcamos el nuacutemero hablamos y luego colgamos De manera similar para usar el servicio orientado a conexiones el usuario del servicio primero establece una conexioacuten la usa y luego la libera El aspecto fundamental de una conexioacuten es que se comporta como un tubo el transmisor introduce objetos por un extremo y el receptor lo saca en el mismo orden por el otro extremo En contraste el servicio orientado al trabajo sin conexioacuten sigue el modelo de un sistema postal cada mensaje lleva consigo la direccioacuten destino completa y cada uno se enruta a traveacutes del sistema con independencia de todos los demaacutes Generalmente cuando dos mensajes se enviacutean a la misma direccioacuten el primero en enviarse seraacute el primero en llegar sin embargo es probable que el primero se retrase y el segundo sea el primero en llegar Este caso es imposible en un sistema orientado a conexiones Cada servicio puede caracterizarse por una calidad Algunos servicios son confiables en el sentido de que nunca pierden datos Por lo regular un servicio confiable se implementa obligando al receptor a confirmar la recepcioacuten de cada mensaje devolviendo un paquete de acuse especial para que el transmisor tenga la seguridad de que se recibioacute El proceso de acuse introduce gasto adicional y retrasos que son necesarios para detectar la peacuterdida de paquetes pero hacen maacutes lentas las cosas Un ejemplo de esto es la transferencia de archivos El propietario del archivo desea asegurarse de que todos los bits lleguen en la forma correcta y en el orden en que se enviaron Muy pocos clientes de transferencia de archivos prefeririacutean un servicio que ocasionalmente revuelva o pierda unos cuantos bits aunque sea mucho maacutes raacutepido El servicio confiable orientado a conexiones tiene dos variantes menores las sucesiones de mensajes y los flujos de bytes En la primera se conservan las fronteras de los mensajes cuando se enviacutean dos mensajes de 1 KB llegan como dos mensajes de 1KB distintos nunca como un mensaje de

52

2KB En la segunda no es mas que un flujo de bytes sin fronteras de mensaje Si llegan 2KB al receptor no hay forma de saber si se enviaron como un mensaje de 2KB dos mensajes de 1KB oacute 2048 mensajes de 1 byte En algunas aplicaciones los retrasos introducidos por los acuses son inaceptables Una de esas aplicaciones es el traacutefico de voz digitalizado No todas las aplicaciones requieren conexiones Por ejemplo para probar la red lo uacutenico que se necesita es un mecanismo para enviar un solo paquete que tenga una alta probabilidad de llegar pero sin garantiacutea El servicio sin conexiones no confiable tambieacuten se conoce como servicio de datagramas en analogiacutea con el servicio de telegramas que tampoco devuelve un acuse al remitente En otras situaciones se desea la comodidad de no tener que establecer una conexioacuten para enviar un mensaje corto pero la confiabilidad es indispensable El servicio de datagramas con acuse es indispensable para estas aplicaciones El servicio de solicitud de contestacioacuten aquiacute el remitente transmite un solo datagrama que contiene una solicitud la respuesta contiene la contestacioacuten Este servicio se usa comuacutenmente para implementar la comunicacioacuten en el modelo cliente-servidor el cliente emite una solicitud y el servidor responde Protocolos de red Todas las redes tienen reglas muy especializadas que definen los mensajes que se pueden devolver por ejemplo en la transferencia de archivos cuando un mensaje se enviacutea de un origen a un destino se exige al destino enviar un acuse para indicar que el mensaje se recibioacute en forma correcta En otros casos como la telefoniacutea digital no se espera tal acuse El conjunto de reglas que rigen la comunicacioacuten entre computadoras especiacuteficas se llama protocolo Todas las redes modernas utilizan una pila de protocolos para colocar diferentes protocolos uno encima de otro En cada capa se resuelven distintas cuestiones Por ejemplo en el nivel maacutes bajo se determina en que puntos inicia y termina el enviacuteo de un paquete En un nivel maacutes alto se determina que todos los paquetes hayan llegado correctamente y en el orden en que estos fueron enviados Puesto que la mayoriacutea de los sistemas distribuidos utilizan Internet como base los protocolos clave que usan estos sistemas son los dos protocolos principales de Internet IP y TCP IP Internet Protocol es un protocolo de

53

datagramas en el que un transmisor inyecta un datagrama hasta de 64KB en la red y tiene la esperanza de que llegue No se ofrecen garantiacuteas El protocolo podriacutea fragmentarse en paquetes maacutes pequentildeos al atravesar Internet Estos paquetes viajan en forma independiente quizaacutes por rutas distintas Cuando todos los fragmentos llegan a un destino se ensamblan en el orden correcto y se entregan En la actualidad existen dos versione IP v4 y v6 todaviacutea v4 domina en esta versioacuten cada paquete inicia con un encabezado de 40 bytes que contiene una direccioacuten de origen de 32 bits entre otros campos Estas se denominan direcciones IP constituyen la base del enrutamiento de Internet Por convencioacuten se escriben cuatro nuacutemeros decimales dentro del intervalo de 0-255 separados por puntos como 1322481101 Cuando un paquete llega a un enrutador este extrae la direccioacuten IP de destino y la usa para enrutar el paquete Como los datagramas de IP no tienen acuse IP no basta para una comunicacioacuten confiable Si se desea esto existe el protocolo TCP Transfer Control Protocol se coloca una capa arriba de IP TCP utiliza IP para proporcionar flujos orientados a conexiones Para usar TCP lo primero que hace un proceso es establecer una conexioacuten con un proceso remoto El proceso requerido se especifica dando la direccioacuten IP de una maacutequina y un nuacutemero de puerto en ella Los procesos interesados en recibir conexiones entrantes ldquoescuchanrdquo en ese puerto Una vez hecho esto el proceso transmisor simplemente propaga bytes para la conexioacuten y garantiza que saldraacuten por el otro extremo sin alteracioacuten y en el orden correcto La implementacioacuten de TCP puede ofrecer una garantiacutea porque usa nuacutemeros sucesivos sumas de verificacioacuten y retransmisiones de paquetes recibidos en forma incorrecta Todo esto es transparente para los procesos que enviacutean y reciben ellos soacutelo ven una comunicacioacuten confiable entre procesos Como en una canalizacioacuten de UNIX Para establecer una conexioacuten con un anfitrioacuten remoto en necesario conocer su direccioacuten IP Puesto que para las personas es difiacutecil manejar listas de direcciones IP de 32 bits se inventoacute un esquema llamado Sistemas de Nombres de Dominio (DNS) una base de datos que asigna nombres ASCII a los anfitriones con base en sus direcciones IP Los nombres DNS son muy conocidos porque las direcciones de correo electroacutenico de Internet adoptan la forma de nombre-de-usuarionombre-DNS-de-anfitrioacuten Este sistema de nombres permite al programa de correo del anfitrioacuten de origen consultar la direccioacuten IP del anfitrioacuten de destino en la base de datos DNS establecer una conexioacuten TCP con el proceso demonio de correo en ese anfitrioacuten y enviar el mensaje como archivo El nombre de usuario tambieacuten se enviacutea para identificar el buzoacuten en el que debe colocarse el mensaje [8]

54

24 Middleware basado en documentos El modelo original en que se basoacute es muy sencillo cada computadora puede contener uno o mas documentos llamadas paacuteginas WEB cada paacutegina web puede contener texto imaacutegenes iconos sonidos peliacuteculas etc asiacute como hiperviacutenculos a otras paacuteginas web Cuando un usuario solicita una paacutegina web mediante un navegador web la paacutegina se exhibe en la pantalla Si se hace un clic en un viacutenculo la paacutegina que esta vitalizada en ese momento es remplazada por la paacutegina a la que apunta tal viacutenculo Aunque se ha ornamentado mucho este sistema el paradigma original continua claramente Web es un enorme grafo dirigido de documentos que pueden apuntar hacia otros documentos Cada paacutegina web tiene una direccioacuten uacutenica URL (Localizador Uniforme de Recursos) con la forma protocolonombre-DNSnombre de archivo el protocolo por lo general es http (Protocolo de transferencia de hipertexto) pero existen otros como el ftp Luego viene el nombre DNS del anfitrioacuten que contiene el archivo Por uacuteltimo viene el nombre de un archivo local que indica el archivo que contiene el documento La organizacioacuten del sistema es el siguiente En esencia web es un sistema cliente servidor en el que el usuario es el cliente y el sitio web es el servidor Cuando el usuario proporciona al navegador una direccioacuten URL el navegador sigue ciertos pasos para traer a pantalla la paacutegina solicitada [8] 25 Middleware Basado en el sistema de archivos Utilizar un sistema de archivos para modelar un sistema distribuido implica que hay un solo sistema de archivos global y que usuarios de todo el mundo pueden leer y escribir archivos en eacutel si cuentan con el permiso correspondiente La comunicacioacuten se logra haciendo que un proceso escriba datos en un archivo y que los otros la lean Modelo de transferencia La primera cuestioacuten implica escoger entre el modelo de subirbajar y el modelo de acceso remoto En el primero un proceso tiene acceso a un archivo copiaacutendolo primero del servidor remoto Si el archivo es de soacutelo lectura se leeraacute de forma local pero si es de escritura lo hace en forma

55

remota Una vez que el proceso ha terminado de usarlo el archivo actualizado vuelve a colocarse en el servidor Con el modelo de acceso remoto el archivo permanece en el servidor y el cliente enviacutea comandos para realizar trabajo en el servidor La ventajas del modelo subirbajar son su sencillez y el hecho de que transferir archivos en una sola operacioacuten es mas eficiente que transferirlo en pedazos pequentildeos Las desventajas es que debe haber suficiente espacio localmente para todo el archivo y que transferir todo el archivo no es econoacutemico si solo se necesitan partes de el y que surgen problemas de consistencia si hay muacuteltiples usuarios concurrentes La jerarquiacutea de directorios Todos los sistemas de archivos distribuidos manejan directorios que contienen muacuteltiples archivos Transparencia de nombres El principal problema con esta forma de asignar nombres es que no es del todo transparente Dos formas de transparencia son importantes en este contexto La primera la transparencia de ubicacioacuten implica que el nombre de ruta no da idea de donde esta situado el archivo Una ruta como servidordir1dir2x dice que el archivo x se encuentra en el servidor 1 pero no dice donde esta ese servidor Dicho servidor puede desplazarse a cualquier lugar de la red sin que sea necesario modificar el nombre de la ruta Este sistema tiene transparencia de ubicacioacuten Pero si el archivo es muy grande y no hay mucho espacio en el servidor y suponiendo que existe u servidor 2 con suficiente espacio es probable que al sistema deseariacutea pasar el archivo x al servidor 2 en forma automaacutetica Lo malo es que si el primer componente de todos los nombres de ruta es el servidor el sistema no puede cambiar el archivo a otro servidor de forma automaacutetica aunque dir1 y dir2 existan en ambos servidores El problema radica en que el cambio de servidor cambia de manera automaacutetica el nombre de ruta del archivo de servidordir1dir2x a servidor2dir1dir2x Los programas que hacen referencia al primer nombre de ruta dejaraacuten de funcionar si cambia la ruta Un sistema en el que los archivos pueden cambiarse de lugar sin que cambie su nombre tiene independencia de ubicacioacuten Es obvio que un sistema de nombres que incorpora los nombres de maacutequinas en los nombres de ruta no es independiente de la ubicacioacuten Uno basado en montaje remoto tampoco lo es porque no es posible pasar un archivo de un grupo de archivos a otro y seguir usando el mismo nombre de ruta No es faacutecil lograr la independencia de ubicacioacuten pero es una propiedad deseable en un sistema distribuido

56

Existen tres enfoques para asignar nombres a los archivos y directorios de un sistema distribuido 1- Nombres de maacutequina + ruta como maacutequinaruta o maacutequinaruta 2- Montar sistemas de archivos remotos en la jerarquiacutea de archivos local 3- Un solo espacio de nombres que se ve igual desde todas las maacutequinas Los dos primeros son faacuteciles de implementar sobre todo como mecanismo para conectar sistemas existentes que no se disentildearon para uso distributivo El uacuteltimo es difiacutecil y requiere un disentildeo cuidadoso pero facilita la vida de programadores y usuarios Semaacutentica del compartimiento de archivos Cuando dos o maacutes usuarios comparten el mismo archivo es necesario definir con precisioacuten la semaacutentica de la lectura y la escritura para evitar problemas En los sistemas de un solo procesador la semaacutentica por lo regular estipula que cuando una llamada al sistema read sigue una llamada al sistema write read devuelve el valor que acaba de escribirse De forma similar cuando se ejecutan dos write en sucesioacuten raacutepida seguidos de un read el valor leiacutedo es almacenado por la uacuteltima escritura El hecho es que el sistema impone un orden en todas las llamadas al sistema y todos los procesadores ven el mismo ordenamiento A este modelo se le denomina consistencia secuencial En un sistema distribuido la consistencia secuencial puede lograrse con facilidad siempre que solo haya un servidor de archivos y los clientes no coloquen archivos en la cacheacute Todas las llamadas read y write se enviacutean de manera directa al servidor de archivos que las procesa en orden estrictamente secuencial En la praacutectica de un sistema distribuido en donde todas las solicitudes deben enviarse al mismo servidor suele ser deficiente El problema se resuelve en muchos casos permitiendo a los clientes mantener copias locales de los archivos que usan mucho en sus cacheacutes privadas Pero si sucede el caso de que el cliente1 modifique y grabeacute su archivo que puso en la cacheacute y poco tiempo despueacutes el cliente2 accede al servidor y llama a ese archivo este encontraraacute una copia obsoleta de dicho archivo Una forma de atacar este problema es propagar de inmediato todos los cambios efectuados a los archivos que se encuentran en las cacheacutes Aunque este enfoque resulta praacutectico desde el punto de vista conceptual en realidad es ineficiente Una solucioacuten alterna seriacutea relajar la semaacutentica del compartimiento de archivos En vez de exigir que un read perciba

57

todos los efectos producidos por los write anteriores puede establecerse que ldquoLos cambios efectuados a un archivo abierto soacutelo son visibles al principio para el proceso que los efectuoacute Es preciso cerrar el archivo para que los cambios sean visibles para los demaacutes procesosrdquo Esta regla de semaacutentica se implementa de manera raacutepida y eficiente y se conoce como semaacutentica de sesioacuten De esta praacutectica se desprende la pregunta de que pasa si dos o mas clientes tienen al mismo tiempo en cacheacute el mismo archivo y lo estaacuten modificando una solucioacuten seriacutea que cuando se cierre cada archivo en turno su valor se enviaraacute al servidor y el resultado final dependeraacute de quieacuten cierre al uacuteltimo una opcioacuten mas faacutecil de implementar es decir que el resultado final seraacute uno de los candidatos pero sin especificar cuaacutel En general el problema de encontrar una semaacutentica de archivos compartidos correcta es complejo y no tiene soluciones elegantes ni eficientes [8] 26 Middleware basado en objetos compartidos En lugar de decir que todo es un documento o todo es un archivo de dice que todo es un objeto Un objeto es una coleccioacuten de variables que se agrupan con un conjunto de procedimientos llamados meacutetodos No se permite a los procesos acceso a las variables de manera directa se les exige invocar los meacutetodos CORBA Algunos lenguajes de programacioacuten tales como JAVA o C estaacuten orientados a los objetos pero estos son objetos a nivel de lenguaje no objetos en tiempos de ejecucioacuten Un sistema muy conocido basado en objetos de tiempos de ejecucioacuten es CORBA (Arquitectura Comuacuten de Agente de Solicitud de Objetos) CORBA es un sistema Cliente-Servidor en el que los procesos cliente en maacutequinas cliente pueden invocar operaciones con objetos situados en maacutequinas servidoras quizaacutes remotas CORBA se disentildeo oara ser ejecutado en diferentes plataformas y diferentes sistemas operativos Para que un cliente en una plataforma pueda invocar a un servidor en una plataforma distinta se interponen agentes de solicitud de Objetos entre el cliente y el servidor para hacerlos compatibles Cada Objeto CORBA se define mediante una definicioacuten de interfaz en un lenguaje llamado IDL (Lenguaje de Definicioacuten de Interfaz) el cual indica que meacutetodos exporta el objeto y que tipos de paraacutemetros espera cada uno La especificacioacuten IDL puede incorporarse por compilacioacuten a un procedimiento de moacutedulo cliente de ese objeto y almacenarse en una biblioteca Si un proceso cliente sabe con antelacioacuten que necesitaraacute acceder a cierto objeto se enlaza con el coacutedigo de moacutedulo de cliente en

58

ese objeto La especificacioacuten IDL tambieacuten puede incorporarse por compilacioacuten en un procedimiento de esqueleto que se usa en el servidor GLOBE Es un ejemplo de sistema distribuido de objetos disentildeado en forma especifica para aumentar su escala a mil millones de usuarios y un billoacuten de objetos en todo el mundo El aumento de escala a sistemas muy grandes se basa en dos ideas clave La primera es tener objetos replicados Si solo hay una copia de un objeto popular al que millones de usuarios de todo el mundo quieren tener acceso el objeto se asfixiaraacute bajo el peso de tanta solicitud La segunda idea clave es la flexibilidad En un sistema a nivel mundial con millones de usuarios no hay forma de lograr que todos se pongan de acuerdo en un lenguaje de programacioacuten una estrategia de replicacioacuten un modelo de seguridad o cualquier otra cosa El sistema debe de considerar que los distintos usuarios y los diferentes objetos se comporten de diferente manera y al mismo tiempo proporcionar un modelo general coherente 27 Middleware basado en coordinacioacuten Un cuarto paradigma se denomina LINDA un proyecto de investigacioacuten acadeacutemica Linda en un novedoso sistema de comunicacioacuten y sincronizacioacuten creado en la Universidad de Yale En Linda procesos independientes se comunican por medio de un espacio de Tuplas abstracto Este espacio es global para todo el sistema y procesos de cualquier maacutequina pueden insertar o sacar Tuplas de eacutel sin importar como o donde estaacuten almacenadas Para el usuario el espacio de Tuplas se parece a una gigantesca memoria compartida global Una tupla es como una estructura en C o un registro en Pascal consta de uno oacute mas campos cada uno de los cuales es un valor de un tipo reconocido por el lenguaje base ( Linda se implementa antildeadiendo una biblioteca a un lenguaje existente como C) En el caso de C linda los tipos de campo incluyen enteros enteros largos y nuacutemeros de punto flotante ademaacutes de tipos compuestos como arreglos y estructuras A diferencia d los objetos las tuplas consisten en forma exclusiva en datos no tienen meacutetodos asociados

59

PUBLICARSUSCRIBIR Este es un meacutetodo inspirado en LINDA este modelo consiste en varios procesos conectados mediante una red de difusioacuten Cada proceso puede ser un productor de informacioacuten un consumidor de informacioacuten o ambas cosas Cuando un productor de informacioacuten tiene un nuevo elemento de informacioacuten difunde la informacioacuten por la red en forma de Tupla A esta accioacuten se le denomina Publicar Cada tupla contiene una liacutenea de tema jeraacuterquica constituida de varios campos separados por puntos Los procesos interesados en cierta informacioacuten pueden suscribirse aciertos temas e incluso utilizar comodines en liacutenea de tema La suscripcioacuten se efectuacutea indicando los temas que debe buscar un proceso demonio de tuplas que revisa las tuplas publicadas en la misma maacutequina Cuando un proceso quiere publicar una tupla la difunde por la LAN local El demonio de tuplas de cada maacutequina copia en su RAM todas las tuplas difundidas luego examina la liacutenea de tema para ver cuales procesos estaacuten interesados en ellas y enviacutea una copia a cada uno Las Tuplas tambieacuten pueden difundirse por una WAN o por Internet haciendo que una maacutequina de cada LAN actuacutee con enrutador de informacioacuten juntando todas las tuplas publicadas y remitieacutendolas a otras LANs para que las difunda Este reenvio tambieacuten puede efectuarse de forma inteligente remitiendo una tupla a una LAN remota solo si esa LAN remota tiene al menos un suscriptor que la desee Para ello es necesario que los enrutadores de informacioacuten intercambien informacioacuten acerca de los suscriptores El modelo publicarsucribir desacopla por completo los productores de los consumidores igual que Linda sin embargo hay ocasiones en que resulta uacutetil saber quieacuten mas existe Esta informacioacuten puede obtenerse publicando una tupla que pregunteacute iquestquieacuten esta interesado en x Las respuestas adoptan la forma de tuplas que dicen ldquoEstoy interesado en Xrdquo JINI Es una variante de la palabra genio en ingleacutes y es de Sun Microsystems es un intento por cambiar a un modelo que se centre en la red Jini consiste en un gran nuacutemero de dispositivos jini autosuficientes cada uno de los cuales ofrece uno o maacutes servicios a los otros Un dispositivo jini puede enchufarse en una red y comenzar a ofrecer y utilizar servicios de forma instantaacutenea sin necesidad de un complejo procedimiento de instalacioacuten Cabe sentildealar que los dispositivos se enchufan en la red y no en

60

una computadora Un dispositivo jini podriacutea ser una computadora de bolsillo un teleacutefono celular un televisor un sistema de sonido u otro dispositivo que tenga una CPU algo de memoria y una conexioacuten de red Un sistema Jini es una federacioacuten informal de dispositivos Jini que pueden llegar e irse a voluntad sin una administracioacuten central Cuando un dispositivo Jini quiere unirse a la federacioacuten Jini difunde un paquete por la LAN local o en la ceacutelula inalaacutembrica local para preguntar si esta presente un servicio de buacutesqueda El protocolo empleado para hallar un servicio de buacutesqueda es el protocolo de descubrimiento y es uno de los protocolos fijos en jini Cuando el servicio de buacutesqueda se percata de que quiere registrarse un nuevo dispositivo contesta con un fragmento de coacutedigo que puede efectuar el traacutemite de registro este coacutedigo enviado esta en JVM y todos los dispositivos jini deben poder ejecutarlo casi siempre interpretaacutendolo A continuacioacuten el nuevo dispositivo ejecuta el coacutedigo que se pone en contacto con el servicio de buacutesqueda y se registra con el durante alguacuten tiempo fijo Justo antes de expirar ese tiempo el dispositivo puede volver a registrarse si lo desea Este mecanismo implica que si un dispositivo jini quiere salirse del sistema soacutelo tiene que desactivarse su existencia previa pronto seraacute olvidada sin necesidad de una administracioacuten central El proceso de registrarse durante un tiempo fijo se le denomina arrendamiento [8] 28 Caracteriacutesticas principales de los sistemas distributivos Existen seis caracteriacutesticas principales que son de utilidad en los sistemas distribuidos Estas son la comparticioacuten de recursos apertura concurrencia escalabilidad tolerancia a fallas y transparencia Estas caracteriacutesticas no son consecuencias atribuibles a la distribucioacuten el software de sistema y de aplicacioacuten debe ser cuidadosamente disentildeado para asegurar que estas sean alcanzables Comparticioacuten de recursos Este teacutermino abarca un rango de cosas que pueden ser compartidas en un sistema distribuido el rango abarca desde los componentes de hardware tales como discos e impresoras hasta entidades de software tales como archivos ventanas bases de datos y otros objetos Los usuarios de ambos sistemas centralizados y distribuidos estaacuten muy bien adaptados para estimar los beneficios de la comparticioacuten de recursos Los beneficios del acceso compartido a un sistema que contenga bases de datos programas documentacioacuten y otro tipo de informacioacuten fueron primeramente conocidos en los sistemas multiusuario oacute de tiempo

61

compartido a principios de los antildeos 60 y en los sistemas multiusuario UNIX en los antildeos 70 Componentes de hardware tales como impresoras discos duros de gran capacidad y otros perifeacutericos son compartidos por conveniencia y para reducir costos El compartimiento de informacioacuten es un requerimiento esencial para muchas aplicaciones Los desarrolladores de software trabajan como un equipo y pueden acceder a otros grupos de trabajo y a la vez pueden compartir las mismas herramientas de desarrollo ya que requieren uacutenicamente de una sola copia de compiladores bibliotecas editores y depuradores auacuten cuando nuevas herramientas de desarrollo o una nueva utileriacutea de un compilador sea instalada todos los usuarios pueden acceder a ella inmediatamente Muchas aplicaciones comerciales permiten a los usuarios acceder a los elementos compartidos en una sola base de datos activa Una raacutepida expansioacuten de las aplicaciones para redes y sistemas distribuidos es el uso de computadoras que soporten grupos de usuarios que trabajen en tareas de colaboracioacuten que pueden beneficiarse de dicho soporte Los recursos compartidos de una computadora multiusuario son normalmente compartidos entre todos sus usuarios pero los usuarios mono-usuario de red y el mismo personal de computadoras no obtienen los beneficios automaacuteticos de la comparticioacuten de recursos Los recursos en un sistema compartido son fiacutesicamente encapsulados en una de las computadoras y puede accederse a ellos uacutenicamente desde otras computadoras La comparticioacuten efectiva de cada recurso debe ser administrada por un programa que ofrezca una interface de comunicacioacuten que permita acceder al recurso manipularlo y actualizarlo en forma segura y consistente El termino geneacuterico administrador de recurso es algunas veces utilizado para denotar un modulo de software que administra un conjunto de recursos de un tipo particular Cada tipo de recurso requiere de algunos meacutetodos y poliacuteticas de administracioacuten separados pero ellos son tambieacuten requerimientos comunes Estos incluyen la provisioacuten de un esquema de nombramiento para cada clase de recurso el habilitamiento del recurso individual para su acceso desde cualquier localidad el mapeo de nombres de recursos para comunicacioacuten direcciones y la coordinacioacuten de accesos concurrentes y el cambio de estado de la comparticioacuten de recursos en orden para asegurar su consistencia La figura 23 ilustra un sistema distribuido compuesto de un conjunto de administracioacuten de recursos y un conjunto de programas en uso Los

62

recursos de usuario se comunican con los administradores de recursos para acceder a los recursos compartidos del sistema Esto sirve para apreciar dos modelos muy interesantes para los sistemas distribuidos el modelo cliente servidor y el modelo objeto base

El modelo cliente servidor es el mas conocido y mayormente adoptado para los sistemas distribuidos Existe un conjunto de procesos servidor cada uno actuando como administrador de recursos para una coleccioacuten de recursos de un tipo dado y una coleccioacuten de procesos cliente cada uno ejecutando una tarea que requiere acceder a parte del hardware y recursos de software compartidos En los recursos de administrador se presenta el caso de que ellos mismos necesiten acceder a los recursos de administrador compartidos por otro proceso algunos procesos son ambos procesos cliente y servidor En el modelo cliente servidor todos los recursos compartidos son mantenidos y administrados por los procesos servidor Los procesos cliente deben enviar una solicitud a los servidores cuando estos necesiten acceder a uno de esos recursos Si la peticioacuten es valida entonces el servidor ejecuta la accioacuten requerida y enviacutea una replica al proceso cliente Un proceso en el mundo de los sistemas distribuidos es un programa corriendo Consiste de un ambiente en ejecucioacuten junto con al menos un hilo de control

m

m

m

m

m

Recursos de administrador

Recursos de usuario

Fig 23 Recursos de administrador y recursos de usuario [1]

63

El modelo cliente servidor provee una ventaja de propoacutesito general para permitir la comparticioacuten de informacioacuten y recursos El modelo puede ser implementado en una variedad de diferentes ambientes de hardware y software Las computadoras utilizadas para correr procesos cliente y servidor pueden ser de muchos tipos y no hay necesidad de distinguir entre ellos ambos procesos cliente y servidor pueden correr sobre la misma computadora un proceso servidor puede utilizar los servicios de otro servidor y este es tomado como cliente En esta vista simple del modelo cada proceso servidor podriacutea ser visto como un proveedor centralizado de los recursos que lo administran El suministro de recursos centralizado es indeseable en los sistemas distribuidos es por esta razoacuten que existe una diferencia entre los servicios que son provistos para los clientes y los servidores Un servicio es considerado una entidad abstracta que puede ser soportada por varios procesos servidor corriendo en computadoras separadas y cooperando en la red El modelo cliente-servidor ha sido empleado efectivamente en sistemas comunes manejando diferentes tipos de servicios y de recursos compartidos correo electroacutenico mensajes de noticias archivos redes sincronizadas discos de almacenamiento impresoras aplicaciones de comunicacioacuten de aacuterea ancha Pero no es posible para todos los recursos que existen en un sistema distribuido ser administrados y compartidos en esta forma para mantener una operacioacuten eficiente ciertos componentes deben ser instalados en cada computadora memoria de acceso aleatorio procesador central e interfaz de red son usualmente un conjunto miacutenimo de tales componentes Esos dispositivos son administrados por separado por un sistema operativo en cada computadora pero estos pueden ser compartidos solamente entre procesos localizados en la misma computadora El modelo objeto base- Este segundo modelo no se trata del tradicional de la programacioacuten orientada a objetos en el cual cada entidad es un programa corriendo y es visto como un objeto con una interfaz para el manejo de mensajes que le proporciona acceso a sus operaciones En el modelo objeto base para sistemas distribuidos cada recurso compartido es visto como un objeto Los objetos son uacutenicamente identificados y movidos a cualquier sitio de la red sin cambiar sus identidades Auacuten cuando un programa en uso requiere acceder a un recurso este enviacutea un mensaje que contiene una peticioacuten al objeto correspondiente El mensaje es asignado al procedimiento o proceso apropiado el cual ejecuta la operacioacuten requerida y enviacutea una replica del mensaje al proceso solicitado si lo requiere

64

El modelo es simple y flexible y permite que la comparticioacuten de recursos sea vista en una forma para los usuarios del sistema En el modelo cliente servidor el esquema de nombres utilizados por los recursos variacutea dependiendo del servicio que los maneja pero en el modelo objeto orientado los usuarios de recursos pueden referirse al todos los recursos de manera uniforme La implementacioacuten del modelo objeto base alcanza cierta dificultad Abertura La abertura de un sistema de computadoras es la caracteriacutestica que determina si el sistema puede ser ampliado en varias formas Un sistema puede estar abierto o cerrado con respecto a su hardware por ejemplo para agregar controladores de perifeacutericos memoria o interfaces de comunicacioacuten oacute con respecto a sus extensiones de software para agregar caracteriacutesticas al sistema operativo protocolos de comunicacioacuten y servicios para la comparticioacuten de recursos La abertura de los sistemas distribuidos esta determinada principalmente por el grado por el cual nuevos recursos compartidos pueden ser agregados sin alterar o duplicar los servicios existentes Los sistema abiertos son caracterizados por el hecho de sus interfaces son publicas Los sistemas distribuidos abiertos estaacuten basados sobre el suministro de un mecanismo de comunicacioacuten de interprocesos uniforme e interfaces publicadas para compartir recursos Los sistemas distribuidos pueden ser construidos de software y hardware heterogeacuteneo posiblemente de diferentes fabricantes Pero la adaptacioacuten de cada componente a los estaacutendares establecidos deben ser cuidadosamente probados y certificados para que sean responsables de resolver los problemas de integracioacuten que se puedan presentar a los usuarios Concurrencia Cuando varios procesos coexisten en una sola computadora se dice que son ejecutados en forma concurrente Si la computadora es equipada con un solo procesador central esto se logra sacando internamente una porcioacuten para la ejecucioacuten de cada proceso Si una computadora tiene N procesadores entonces N procesos pueden ser ejecutados simultaacuteneamente estableciendo una estructura hablando en el campo computacional

65

En los sistemas distribuidos existen muchas computadoras con uno o varios procesadores centrales Si hay M computadoras en un sistema distribuido con un procesador central entonces M procesos pueden correr en paralelo previendo que los procesos estaacuten localizados en diferentes computadoras En un sistema distribuido que esta basado en el modelo de recursos compartidos la oportunidad de la ejecucioacuten paralela ocurre por dos razones Muchos usuarios simultaacuteneamente invocan comandos o interactuacutean con programas de aplicacioacuten Muchos procesos servidor corren concurrentemente cada uno respondiendo a diferentes peticiones de los procesos cliente Escalabilidad Los sistemas distribuidos operan eficientemente a diferentes escalas Quizaacutes el ejemplo maacutes pequentildeo de un sistema distribuido consista de dos estaciones de trabajo y un servidor de archivos en contraste con otro que sea construido alrededor de un aacuterea de red local que podriacutea contener cientos de estaciones de trabajo y muchos servidores de archivos servidores de impresioacuten y otros servidores de propoacutesito especial Varias redes de aacuterea local frecuentemente estaacuten interconectadas en forma de internetworks y estas pueden contener cientos de computadoras que forman un sistema distribuido habilitando la comparticioacuten de recursos entre todos ellos El sistema y el software de aplicacioacuten no deben necesitar cambios cuando la escala del sistema es incrementada Esta caracteriacutestica es asociada para una extensioacuten importante en la mayoriacutea de los componentes de los sistemas distribuidos comunes Pero esta es un aacuterea en investigacioacuten y es requerida para adaptar sistemas de gran escala y aplicaciones que es como se incrementa la ejecucioacuten de las redes Tolerancia a fallas Los sistemas de computadoras algunas veces fallan Cuando las fallas ocurren en software y hardware los programas pueden producir resultados incorrectos o estos se podriacutean detener antes de haber terminado su trabajo El disentildeo de sistemas de coacutemputo con tolerancia a fallas esta basado en dos direcciones

- Redundancia en hardware utiliza componentes redundantes

66

- Recuperacioacuten de software el disentildeo de programas para la recuperacioacuten de sistemas si se presentan fallas

Para producir sistemas que sean tolerantes a fallas de hardware frecuentemente se emplean dos computadoras que son interconectadas para utilizar una sola aplicacioacuten una de ellas actuacutea como una maacutequina de paro para la otra En sistemas distribuidos la redundancia puede ser planificada en forma detallada por ejemplo para servidores que son esenciales para continuar la operacioacuten de aplicaciones criacuteticas que puedan ser replicadas Para la adaptacioacuten de hardware redundante con tolerancia a fallas para actividades cuando no se presenten fallas Por ejemplo una base de datos puede ser replicada en varios servidores para garantizar que los datos permanezcan accesibles en cualquier servidor despueacutes de una falla Los servidores pueden ser disentildeados para detectar fallas en sus puntos cuando una falla es detectada en un servidor los clientes son redireccionados hacia servidores maacutes estables Teacutecnicas como esta la tolerancia a fallas en algunos tipos de hardware pueden ser implementadas en sistemas distribuidos a bajo costo La recuperacioacuten de software involucra el disentildeo de software que garantice la permanencia de los datos cuando una falla es detectada En general la ejecucioacuten de algunos programas seraacute incompleta cuando ocurre una falla y los datos permanentes son actualizados pero no en una forma consistente Transparencia La transparencia esta definida como el ocultamiento del programa de aplicacioacuten y el usuario en la separacioacuten de componentes en un sistema distribuido asiacute que el sistema esta percibido como una coleccioacuten de componentes independientes Las implicaciones de transparencia estaacuten mejor influenciados en el disentildeo de software [1] 29 Modelos para aplicaciones distribuidas Paso de mensajes En este modelo los datos que representan mensajes se intercambian entre dos procesos un emisor y un receptor Este es el modelo fundamental para aplicaciones distribuidas Un proceso enviacutea un mensaje que representa una

67

peticioacuten El mensaje se entrega a un receptor que procesa la peticioacuten El mensaje se entrega aun receptor que procesa la peticioacuten y enviacutea un mensaje como respuesta En secuencia la replica puede enviar peticiones posteriores que llevan s sucesivas respuestas y asiacute en adelante Las operaciones necesarias para dar soporte al modelo son enviar y recibir Modelo Cliente-servidor Este es quizaacutes el modelo mejor conocido para aplicaciones de red este asigna roles diferentes a los dos procesos que colaboran Un proceso 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 espera sus respuestas Muchos servicios de Internet dan soporte a aplicaciones cliente-servidor estos servicios se conocen por el protocolo que utilizan para dar el servicio tales como http FTP finger gopher y otros Modelo igual a igual peer to peer En este modelo los procesos participantes interpretan los mismos papeles con ideacutenticas capacidades y responsabilidades Cada participante puede solicitar una peticioacuten a cualquier otro participante y recibir una respuesta este modelo es apropiado para aplicaciones como mensajeriacutea instantaacutenea transferencia de archivos video-conferencias y trabajo colaborativo Sistemas de mensajes El modelo de sistema de mensajes o Middleware Orientado a Mensajes en este modelo un sistema de mensajes sirve de intermediario entre procesos separados e independientes El sistema de mensajes actuacutea como un conmutador para mensajes a traveacutes de cual los procesos intercambian mensajes sin que exista bloqueo en la comunicacioacuten de una forma desacoplada Un emisor deposita un mensaje en el sistema de mensajes el cual redirige el mismo a la cola de mensajes asociada a dicho receptor Una vez que se ha enviado el emisor queda liberado para que realice cualquier otra tarea Modelo de mensajes punto a punto En este modelo un sistema de mensajes redirige un mensaje desde el emisor hasta la cola de mensajes del receptor El middleware de este

68

modelo proporciona un depoacutesito de los mensajes que permite que el enviacuteo y la recepcioacuten esteacuten desacoplados Por medio del middleware un emisor deposita el mensaje en la cola de mensajes del receptor Un proceso receptor extrae los mensajes de su cola de mensajes y procesa cada mensaje de forma correspondiente Modelo de mensajes Publicacioacutensuscripcioacuten Cada mensaje se asocia con un determinado tema o evento Las aplicaciones interesadas en un suceso especiacutefico se puede suscribir a los mensajes de dicho evento Cuando el evento que se aguarde ocurre el proceso publica un mensaje anunciado el evento o asunto El middleware del sistema de mensajes distribuye el mensaje a todos los suscriptores Modelo de llamadas a procedimientos remotos Este modelo proporciona una abstraccioacuten mayor para la programacioacuten distribuida utilizando este modelo la comunicacioacuten entre dos procesos se realiza utilizando un concepto similar al de una llamada a un procedimiento local que resulta familiar a los programadores de aplicaciones Una llamada a un procedimiento remoto implica dos procesos independientes que pueden residir en maacutequinas diferentes Un proceso A que quiere realizar una peticioacuten a otro proceso B invoca a un procedimiento de B pasando junto a la llamada una lista de valores de argumentos Una llamada a un procedimiento remoto dispara una accioacuten predefinida en procedimiento proporcionado por B Al finalizar el procedimiento el proceso B devuelve un valor al proceso A Desde su aparicioacuten a principios de los 80 el modelo de llamadas a procedimientos remotos ha sido ampliamente utilizado en las aplicaciones de red Existen dos relevantes - ONC RPC (Open Network Computing Remote Procedure Call)

desarrollada por Sun Microsystem - SOAP ( SIMPLE OBJECT ACCESS PROTOCOL) dan soporte a las llamadas a

procedimientos remotos basadas en web [2] Modelos de objetos distribuidos La idea de aplicar la orientacioacuten de objetos a las aplicaciones distribuidas en una extensioacuten del software orientado a objetos Las aplicaciones

69

acceden a objetos distribuidos sobre una red Los objetos proporcionan meacutetodos a traveacutes de cuya invocacioacuten una aplicacioacuten obtiene acceso a los servicios Invocacioacuten a meacutetodos remotos La invocacioacuten a meacutetodos remotos es el equivalente en orientacioacuten a objetos de las llamadas a procedimientos remotos En este modelo un proceso invoca meacutetodos de un objeto el cual reside en una computadora remota Los argumentos se pueden pasar con la invocacioacuten y se puede devolver un valor cuando un meacutetodo ha concluido Modelo basado en Object Request Broker En este modelo un proceso solicita una peticioacuten a un ORB el cual redirige la peticioacuten al objeto apropiado que proporciona dicho servicio El ORB puede funcionar tambieacuten como mediador para objetos heterogeacuteneos permitiendo la interaccioacuten entre objetos implementados usando diferentes API ejecutando sobre diferentes plataformas [3] Espacio de objetos Los participantes de una aplicacioacuten convergen en un espacio de objetos comuacuten un suministrador coloca objetos como entidades dentro de un espacio de objetos y los solicitantes que se suscriben al espacio pueden acceder a dichas entidades[3] Agente moacuteviles Un agente moacutevil es un programa u objeto transportable En este modelo un agente se lanza desde una determinada computadora El agente entonces viaja de forma autoacutenoma de una computadora a otro acuerdo con un itinerario que posee En cada parada el agente accede a los recursos o servicios necesarios y realiza las tareas correspondientes para completar su misioacuten El modelo ofrece una abstraccioacuten de programa u objeto transportable Los datos son transportados por el programaobjeto mientras el propio objeto se transfiere entre los participantes[3] Modelos de servicios de red Un proceso que desee un servicio particular contacta con el servidor de directorio en tiempo de ejecucioacuten y si el servicio esta disponible al proceso se le daraacute una referencia a dicho servicio Usando esta referencia el proceso interactuaraacute con el servicio

70

Este modelo es una extensioacuten del modelo de invocacioacuten de meacutetodos remotos Los objetos se registran en un directorio global permitieacutendoles ser localizados y accedidos por solicitantes de servicios dentro de una red federada Idealmente los servicios se pueden registrar y localizar usando un identificador uacutenico global en cuyo caso el modelo ofrece un nivel de abstraccioacuten extra transparencia de localizacioacuten La transparencia de localizacioacuten permite a los desarrolladores de software acceder aun objeto o servicio sin tener que ser conciente de la localizacioacuten del objeto oacute servicio[3] Modelo de aplicaciones colaborativas En este modelo para trabajo cooperativo basado en computadora los procesos participan en grupo en una sesioacuten colaborativa Cada proceso participante puede hacer contribuciones a todos o parte del grupo Los procesos pueden hacer eso usando multidifusioacuten para enviar los datos o usar tablones virtuales los cuales permiten a cada participante leer y escribir datos sobre una visualizacioacuten compartida [3]

71

CAPIacuteTULO 3

3- PROTOCOLOS REMOTOS En este capiacutetulo se describe la estructura del software usado en los sistemas de red Se explica porque el hardware por siacute solo no resuelve todos los problemas de comunicacioacuten y la razoacuten por la cual se necesita software de protocolos 31 Necesidad de los protocolos El hardware de comunicacioacuten baacutesico consta de mecanismos para transferir bits de un lugar a otro Sin embargo el uso de hardware de comunicacioacuten es complicado e inconveniente Para ayudar a los programadores las computadoras conectadas a una red usan un software complejo que es una conveniente interfaz de alto nivel para las aplicaciones El software maneja de manera automaacutetica casi todos los detalles y problemas de la comunicacioacuten de bajo nivel lo que permite que las aplicaciones se comuniquen con facilidad Por lo tanto los programas de aplicacioacuten en su mayor parte se apoyan en software de red para comunicarse y no interactuacutean directamente con el hardware de la red Todas las partes que participan en una comunicacioacuten deben acordar reglas que seguiraacuten durante el intercambio de mensajes es decir el lenguaje y las normas para enviarlos A estos acuerdos se les denomina protocolos El teacutermino se aplica tambieacuten a la comunicacioacuten entre computadoras las reglas que especifica el formato de los mensajes y las acciones adecuadas ante cada mensaje se conocen como protocolo de red o protocolo de comunicacioacuten de computadoras El software que implanta tales reglas se denomina software de protocolo El protocolo de red puede ser sencillo o resultar complicado Resumiendo

El acuerdo que especifica el formato y el significado de los mensajes intercambiados por las computadoras se llama protocolo de comunicacioacuten Los programas de aplicacioacuten que utilizan redes no interactuacutean directamente con el hardware de red sino con el software de protocolo que sigue las reglas de un protocolo determinado durante la comunicacioacuten [4]

72

32 Familias de protocolos En lugar de tener un solo protocolo gigante que especifique todos los detalles de todas las formas posibles de comunicacioacuten los disentildeadores han decidido dividir el problema de la comunicacioacuten en partes y disentildear protocolos separados para cada parte Hacerlo simplifica el disentildeo el anaacutelisis la implantacioacuten y la prueba de protocolos El hacer la divisioacuten de software de comunicacioacuten en varios protocolos aumenta la flexibilidad porque permite que los subgrupos de protocolos se usen seguacuten se necesite La divisioacuten en protocolos separados debe escogerse cuidadosamente para que el sistema de comunicacioacuten sea eficiente y efectivo Para evitar la duplicacioacuten de esfuerzo cada protocolo debe manejar parte del problema de la comunicacioacuten y esa parte no la manejaraacuten otros protocolos Para que la implantacioacuten sea eficiente hay que disentildearlos para que compartan estructuras de datos e informacioacuten Por uacuteltimo la combinacioacuten de protocolos debe manejar todas las fallas de hardware posibles y otras condiciones excepcionales Para garantizar que los protocolos trabajen bien juntos se tiene el plan global de disentildeo en lugar de elaborar cada protocolo aisladamente se disentildean y se desarrollan en conjuntos cooperativos llamados grupos o familias Cada protocolo de la familia resuelve una parte del problema de comunicacioacuten Ademaacutes la familia se disentildea para que la interaccioacuten entre los protocolos sea eficiente [12] 33 Lista de protocolos 331 TCP (Transmisioacuten Control Protocol) El protocolo de control de transmisioacuten TCP es el meacutetodo maacutes eficiente y seguro de mover traacutefico de red entre un cliente y un servidor o entre subredes en general es un protocolo de propoacutesito general que se puede adaptar para utilizarlo con otros sistemas de entrega TCP es un protocolo orientado a conexioacuten que genera un circuito virtual entre dos entidades de red y que proporciona fiabilidad extremo a extremo Para garantizar el buen funcionamiento de la red TCP utiliza diferentes teacutecnicas que maximizan el rendimiento de las conexiones asegurando que los segmentos de datos que manipula tiene un tamantildeo oacuteptimo y la velocidad de enviacuteo es la maacutes indicada para el circuito virtual establecido TCP utiliza una teacutecnica conocida como acuse de recibo para garantizar la llegada de datos a la entidad remota

73

Conexiones TCP Funcionan de una forma muy parecida a las conexiones viacutea telefoacutenica El usuario que esta a un lado de la liacutenea inicia una comunicacioacuten y eacutesta debe ser aceptada por el usuario que se encuentra al otro lado Cuando un cliente decide establecer una comunicacioacuten con un servidor es necesario que ambos esteacuten de acuerdo en participar de lo contrario la comunicacioacuten no se puede llevar a cabo Una conexioacuten TCP viene identificada por una pareja de sockets direccioacuten IP y un nuacutemero de puerto en cada extremo La ventaja de este meacutetodo es que un uacutenico host es capaz de mantener diferentes conexiones TCP a traveacutes de un mismo puerto Esto es posible debido a que los paquetes que recibe el host se diferencian unos de otros porque utilizan sockets distintos Formato del segmento TCP La cabecera de un segmento TCP tiene 20 bytes de longitud aunque este tamantildeo puede ser excedido en el caso de utilizar opciones adicionales Los dos primeros campos indican el puerto origen y destino En el caso de que un cliente intente realizar una conexioacuten a un puerto de un servidor el sistema operativo le asignaraacute un puerto local mayor de 1024 Este nuacutemero viajaraacute en el campo indicado como puerto origen dentro de la cabecera TCP El puerto destino seraacute el nuacutemero de puerto del servidor al cual se desea conectar el cliente Dentro de un segmento TCP cada byte se enumera siguiendo un peculiar sistema que explica a continuacioacuten Fig 31

74

Durante el proceso de conexioacuten cada uno de los hosts que intervienen en una comunicacioacuten elige un nuacutemero aleatorio para comenzar a contabilizar los bytes que viajaraacuten en los segmentos de datos de dicha conexioacuten El nuacutemero aleatorio se corresponde con el primer byte del segmento TCP Dicho nuacutemero se incluye en el campo de 4 bytes denominado nuacutemero de secuencia Los sucesivos segmentos que enviacuteen los hosts llevaraacuten como nuacutemero de secuencia el nuacutemero aleatorio que se eligioacute en un principio maacutes el nuacutemero de bytes que se han enviado hasta el momento Establecimiento de la conexioacuten TCP Una conexioacuten TCP requiere un proceso denominado threeway handshake (saludo en tres fases) En el que tal como su nombre lo indica se distinguen tres etapas bien diferenciadas Todo servidor debe estar preparado para recibir una peticioacuten de conexioacuten Este proceso se lleva a cabo mediante las llamadas a las funciones socket()( bind() y listen() Cuando un cliente genera una llamada connect() enviacutea un segmento al servidor solicitando abrir un circuito TCP Dicho segmento lleva activado el flag SYN para indicar que el circuito esta en proceso de sincronizacioacuten Este segmento no suele llevar ninguacuten tipo de datos uacutenicamente la cabecera IP la cabecera TCP y las posibles opciones TCP

Datos

Opcioacuten es

checksum Puerto urgente

Longitud cabecera reservado flags ventana

Nuacutemero de secuencia ACK

Nuacutemero de secuencia

Puerto origen Puerto destino

Fig 31 Estructura del segmrento TCP [12]

75

El servidor responde enviando un segmento de aceptacioacuten al segmento anterior Por lo que activa el flag ACK y en el campo nuacutemero de secuencia ACK coloca el valor correspondiente al campo nuacutemero de secuencia del segmento recibido pero incrementado en una unidad El flag SYN viaja activado para indicar que el proceso de sintonizacioacuten no ha finalizado todaviacutea En este momento cuando el cliente recibe el segmento sabe que el servidor ha validado su peticioacuten pero es ahora el servidor el que esta esperando que se valide su segmento El cliente enviacutea un segmento validando el enviado por el servidor colocando el valor correspondiente en el campo nuacutemero de secuencia ACK y activando el flag ACK El flag SYN no viaja activo en esta ocasioacuten Llegando a este punto se ha establecido la conexioacuten completamente [12] 332 UDP (User Datagram Protocol) En el grupo de protocolos TCP IP el protocolo de Datagramas de usuario proporciona el mecanismo primario que utilizan los programas de nivel de aplicacioacuten para enviar datagramas a otros programas del mismo nivel UDP es un protocolo No orientado a conexioacuten que transporta un flujo de bytes conocido como datagrama desde una maacutequina origen hasta otra maacutequina destino UDP no es un protocolo fiable debido a que no garantiza la llegada de los mensajes ni la retransmisioacuten de los mismos Un programa de aplicacioacuten que utiliza UDP acepta toda la responsabilidad sobre la peacuterdida duplicacioacuten retraso de los mensajes la entrega fuera de orden etc Si la peticioacuten incluye un identificador con su mensaje de peticioacuten el servidor puede reconocer los datagramas duplicados y llevar a cabo el descarte de los mismos sin embargo este mecanismo es labor del programa de aplicacioacuten y no del protocolo UDP Formato de los datagramas UDP Los campos Puerto Origen Puerto Destino contienen los nuacutemeros de puerto del protocolo UDP El primero de ellos es opcional En caso de utilizarse especifica la parte a la que se tienen que enviar las respuestas de lo contrario pueden tener un valor de cero El campo longitud contiene la longitud del datagrama incluyendo la cabecera y los datos de usuario El valor miacutenimo de este campo es 8 El checksum es la suma de verificacioacuten Es opcional y no es necesario utilizarlo En el caso de que el valor aparezca en dicho campo sea cero significa que la suma de verificacioacuten no se realizoacute El checksum que aparece en el datagrama UDP no soacutelo se realiza con la informacioacuten de la cabecera sino que utiliza una pseudos-cabecera y antildeade un byte lleno de ceros para conseguir que el datagrama sea multiplo de 16 bits El

76

octeto utilizado como relleno y la pseudos-cabecera no se enviacutean por la red ni se utilizan para calcular la longitud del mensaje UDP La Pseudocabecera esta formada por un conjunto de campos como son Direccioacuten IP origen Es la direccioacuten de red del host origen Direccioacuten IP destino Es la direccioacuten IP del host destino El tercer campo es el byte de ceros El cuarto campo indica el tipo de protocolo IP El uacuteltimo campo es la longitud UDP Cuando el receptor recibe el datagrama necesita extraer los diferentes campos para realizar la comprobacioacuten de que los datos llegaron correctamente Puertos Entre los numerosos puertos que utiliza UDP Estos protocolos tienen un nuacutemero de puerto asignado en el servidor Estos puertos reciben el nombre de well known ports La razoacuten por la cual estos puertos deben ser conocidos es debido a que los clientes deben saber cual es el puerto al que deben conectarse para llevar acabo un determinado servicio [12] 333 ARP (Address Resolution Protocol) Es el protocolo encargado de asociar direcciones de red con direcciones fiacutesicas Para que dos estaciones de una red local puedan comunicarse es necesario realizar esta asociacioacuten ya que seraacuten las direcciones fiacutesicas de las tarjetas de red las que permitan identificar el uacuteltimo teacutermino una estacioacuten de la red local La mejor forma de apreciar la utilidad de este protocolo es analizar el proceso que sigue para enviar un dato desde otro host a otro a traveacutes de una red TCP IP Pero antes seraacute necesario ver los diferentes niveles en los que se puede dividir la arquitectura TCP IP Niveles de aplicacioacuten presentacioacuten y sesioacuten Las aplicaciones TCP IP abarcan estos tres primeros niveles del modelo OSI En esta etapa se preparan los datos que se quieren transmitir y una vez listos se enviacutean al siguiente nivel Nivel de transporte En esta capa se encuentra TCP y UDP En el caso de TCP se ofrecen servicios de control de flujo de enviacuteo ordenado y fiable Nivel de red En esta capa IP ofrece un servicio de direccionamiento de los hosts a nivel de red y encaminamiento a traveacutes de las posibles redes existentes Nivel de enlace o nivel de acceso a la red En este nivel se encuentran ARP y RARP Esta capa es responsable del intercambio de datos entre el sistema

77

y la red a la cual estaacute conectado de tal manera que aiacutesla a las capas superiores de las particularidades de la red sobre la que se vaya a transmitir Esta capa podriacutea cambiar sin afectar al software de niveles superiores En este caso se supone que en este nivel se encuentra ARP y RARP pero podriacuteamos encontrarnos con X25 o SLIP si el acceso a la red fuera otro Nivel fiacutesico En este nivel se encuentra la interfaz entre el ordenador y la red Tienen relevancia cuestiones como el tipo de sentildeales que se manejan su codificacioacuten la velocidad de transmisioacuten y las caracteriacutesticas propias del medio de transmisioacuten Funcionamiento En la praacutectica cada estacioacuten de la red dispone de una tabla donde se guardan las direcciones de la red junto con su direccioacuten fiacutesica asociada Esta tabla se confecciona dinaacutemicamente mediante ARP Cuando un host quiere comunicarse con otro busca en su tabla ARP la direccioacuten IP de la otra estacioacuten Si la encuentra podraacute obtener la direccioacuten fiacutesica asociada y comunicarse sin problemas con la otra estacioacuten De no encontrar dicha entrada el host enviaraacute una solicitud ARP a toda la red indicando en dicho mensaje la direccioacuten IP del host con el que quiere comunicarse El host destino recibiraacute este mensaje y se daraacute por aludido al ver en eacutel su direccioacuten IP Lo primero que hace es actualizar su propia tabla ARP con la direccioacuten IP y la direccioacuten fiacutesica de la estacioacuten que enviacuteo la solicitud Hecho esto enviacutea una respuesta al host origen para indicarse su direccioacuten fiacutesica El host origen recibe esta respuesta y actualiza su tabla ARP Estando a partir de este momento en disposicioacuten de comenzar el intercambio de datos ARP fue disentildeado en su origen para redes Ethernet pero se puede hacer uso de eacutel en otro tipo de redes como Arcnet Token Ring o redes de fibra oacuteptica Los mensajes ARP se enviacutean en el campo de datos de las tramas de ETHERNET yendo siempre a continuacioacuten de las cabeceras que se antildeadan en el nivel inferior Formato del mensaje ARP La estructura de mensaje ARP es la siguiente Fig 32

78

334 Protocolo RARP Una variante de ARP es RARP (Reverse ARP) Su funcioacuten es permitir a una estacioacuten de una red obtener su direccioacuten IP conociendo uacutenicamente su direccioacuten fiacutesica Esta estrategia se suele utilizar para que las estaciones de red sin disco obtengan su configuracioacuten desde un servidor de red Una estacioacuten que utilice el protocolo RARP enviacutea un mensaje a toda la red (broadcast) indicando su direccioacuten fiacutesica y solicitando su direccioacuten IP Un servidor de red que actuacutee como servidor de direcciones y esteacute en disposicioacuten de ofrecer tal informacioacuten leeraacute la solicitud y consultaraacute su tabla RARP para ver que direccioacuten IP corresponde a la direccioacuten MAC indicada en la peticioacuten devolviendo dicha direccioacuten IP como respuesta a la estacioacuten [12] 335 Protocolo Finger Finger es un protocolo muy simple que ofrece la posibilidad de obtener informacioacuten sobre un usuario de un servidor remoto Finger se basa en TCP usando para sus propoacutesitos el puerto 79 El funcionamiento es el siguiente El cliente abre una conexioacuten al puerto 79 del servidor Una vez establecida la conexioacuten el cliente enviacutea una liacutenea de texto que constituiraacute la solicitud de informacioacuten El servidor procesa esta solicitud enviando la respuesta al cliente dando por terminada la conexioacuten a continuacioacuten El cliente recibe los datos enviados por el servidor y la sentildeal de finalizacioacuten de la conexioacuten procediendo a cerrar su extremo de la misma Todos los datos transferidos estaacuten en coacutedigo ASCII cada liacutenea finaliza en retorno de carro y avance de liacutenea (ltCTRLFgt =ASCII 13 y ASCII 10 [12]

Direccioacuten MAC origen

Direccioacuten MAC origen Direccioacuten IP origen

Direccioacuten MAC destino Direccioacuten IP origen

Direccioacuten IP destino

Direccioacuten MAC destino

0 7 8 15 16 23 24 31

Fig 32 Estructura mensaje ARP [12]

79

336 TFTP (TRIVIAL FTP) El protocolo TFTP (Trivial File Transfer Protocol) es una simplificacioacuten del protocolo FTP para la transferencia de archivos TFTP puede resultar uacutetil cuando sea necesario el enviacuteo de archivos entre dos hosts de una red y no se requieran las opciones extendidas y la versatilidad ofrecida por el protocolo de transferencia de archivos estaacutendar FTP El protocolo TFTP hace uso normalmente de UDP en el nivel de transporte a diferencia del protocolo FTP el cual hace uso de TCP Esto no quiere decir que TFTP esteacute limitado a UDP ya que se podriacutea implementar perfectamente haciendo uso de otros protocolos de transporte pero como un objetivo principal de su disentildeo es la sencillez se optoacute por UDP Teniendo como objetivo principal esta sencillez de disentildeo las capacidades de TFTP se limitan al enviacuteo y recepcioacuten de archivos careciendo de opciones tiacutepicas en FTP como la autentificacioacuten de usuarios o el listado de directorios Funcionamiento La comunicacioacuten es iniciada por el cliente quieacuten enviacutea al servidor una solicitud para el enviacuteo o recepcioacuten de un archivo Si el servidor acepta la transferencia se comenzaraacute el enviacuteo de archivos en paquete de datos de 512 bytes Cada paquete enviado debe ser confirmado por el receptor del mismo para ello se enviaraacute un mensaje de confirmacioacuten y eacuteste se pierde el receptor se quedaraacute esperando la llegada del mismo durante un intervalo de tiempo predefinido al agotarse el timeout el receptor reenviaraacute el uacuteltimo paquete que enviacuteo al emisor eacuteste comprobaraacute al recibirlo que estaacute duplicado y sacaraacute la conclusioacuten de que su confirmacioacuten no llegoacute y por este motivo le vuelven a enviar el paquete El emisor enviaraacute de nuevo el paquete de confirmacioacuten que se ha perdido y que el receptor nunca llegoacute a recibir Esta posible situacioacuten obliga al emisor a guardar al menos el uacuteltimo paquete que haya enviado por si es necesario retransmitirlo por otra parte los paquetes anteriores puede descartarlos ya que fueron confirmados satisfactoriamente El receptor daraacute por terminada la transferencia cuando se reciba un paquete de datos de menos de 512 bytes La sencillez del protocolo lo hace poco robusto a los posibles fallos que puedan surgir tornaacutendose como norma la terminacioacuten de la transferencia ante cualquier error no necesitan ser confirmados y en caso de perderse no seraacuten reenviados Cuando cualquiera de los extremos detecta una anomaliacutea enviacutea un paquete de error al otro extremo y da por terminada la transferencia automaacuteticamente

80

Se pueden originar principalmente tres tipos de errores o El servidor es incapaz de satisfacer la peticioacuten del cliente ya que el

archivo solicitado no se encuentra o hay un problema con los permisos de acceso

o Se recibe un paquete malformado o con datos incorrectos o Se agotan los recursos necesarios para seguir con la transferencia

por ejemplo se acaba el disco y nos e pueden seguir grabando los datos que se reciben

Proceso de transferencia El cliente enviacutea una solicitud de lectura o escritura de un archivo al servidor Si el servidor no acepta la transferencia propuesta por el cliente le enviacutea un paquete de error En caso de aceptar la solicitud del cliente el servidor le enviaraacute un paquete de confirmacioacuten si la solicitud fue de escritura o el primer paquete de datos del archivo pedido en caso de tratarse de una solicitud de lectura Cada paquete de datos que se enviacutee tendraacute asociado un identificador o nuacutemero de bloque que permitiraacute identificar cada paquete uniacutevocamente y por tanto detectar peacuterdidas y duplicaciones de paquetes Los paquetes de datos se comienzan a numerar a partir de 1 y en cada enviacuteo se incrementa este campo en una unidad El paquete de confirmacioacuten que se enviacutea al aceptar una solicitud de escritura de un caso es un caso especial ya que tendraacute un valor de 0 en el campo de identificador a confirmar En cuanto a los puertos de origen y destino usados el procedimiento es el siguiente a la hora de enviar el primer mensaje de solicitud de servicio el cliente elige aleatoriamente un puerto local y lo coloca en el campo de puerto origen del paquete UDP Como puerto destino se pondraacute el puerto 69 El servidor al recibir este paquete de solicitud de servicio seleccionaraacute a su vez un puerto aleatoriamente que colocaraacute en el campo de puerto origen en todos aquellos paquetes que enviacutee Como puerto destino el servidor colocaraacute el puerto local elegido por el cliente y recibido en el primer mensaje En este punto ya se ha establecido la conexioacuten y comenzariacutea con el intercambio de paquetes de datos y de confirmacioacuten En este intercambio de paquetes se podriacutea dar el caso de recibir uno con un puerto de origen incorrecto en esta situacioacuten se enviaraacute un paquete de error al originante pero no se descartaraacute toda la transferencia uacutenicamente se ignoraraacute el paquete erroacuteneo y se avisaraacute al originante del mismo Fig 33

81

Finalizacioacuten de la transferencia Cuando llega un paquete de datos con menos de 512 bytes se considera el uacuteltimo paquete y comienza el proceso de finalizacioacuten de la transferencia Este uacuteltimo bloque de datos es confirmado como el resto con un mensaje de confirmacioacuten ACK Una vez que uno de los hosts enviacutea la confirmacioacuten ya puede dar por finalizada la transferencia aunque en la praacutectica esperaraacute un tiempo prudencial por si este paquete de confirmacioacuten se pierde y es necesaria su retransmisioacuten esto ocurriraacute si le llega al host de nuevo el uacuteltimo paquete de datos Si esto ocurre significa que el otro host ha agotado su timeout esperando la llegada del ACK al no recibir el paquete de confirmacioacuten no sabe si lo que no llegoacute fue el ACK o su paquete de datos por lo que reenviacutea este uacuteltimo Cuando por fin se recibe el ACK la transferencia ya puede darse por finalizada cerrando cada host su extremo de la conexioacuten En caso de ocurrir alguacuten error la transferencia se terminaraacute de forma prematura El uacuteltimo paquete que se enviaraacute por la red seraacute uno de error que no seraacute ni confirmado ni retransmitido por el receptor del mismo[12]

cliente servidor

Aceptacioacuten No Paquetes = 0 Puerto local 3519 Puerto remoto 1748

Solicitud de lectura Puerto local1748 Puerto remoto 69

Datos (No Paquetes =1) Puerto local 3519 Puerto remoto 1748

servidor cliente

Solicitud de escritura Puerto local 1748 Puerto remoto 69

Fig 33 Intercambio de paquetes[12]

82

337 FTP (File Transfer Protocol) Permite la transferencia de archivos entre dos hosts de la red Este protocolo utiliza dos conexiones para llevar a cabo su trabajo El protocolo diferencia entre una conexioacuten de control y otra conexioacuten de datos La conexioacuten de control sigue la misma filosofiacutea que las conexiones que se realizan para protocolos como SMTP POP3 o NNTP donde se enviacutean comandos y esperan respuestas que indiquen si la funcioacuten solicitada se pudo llevar a cabo La diferencia radica en que los datos no son enviados para esta conexioacuten sino que se abre otra conexioacuten de datos diferente para este fin La conexioacuten de control la realiza el cliente a la direccioacuten IP del servidor y aun puerto conocido y estandarizado para este servicio en este caso el protocolo FTP tiene asignado el puerto 21 La forma de establecer la conexioacuten de datos se negociaraacute entre el cliente y el servidor pudiendo comenzar dicha conexioacuten cualquiera de las dos En ambos casos se deberaacuten indicar la direccioacuten IP y el puerto al cual realizar dicha conexioacuten Funcionamiento El protocolo fue disentildeado para ser independiente de las representaciones particulares que cada hosts pudiera tener de los datos Para lograr esta generalidad es necesario que se indiquen al protocolo cuatro paraacutemetros que estableceraacuten la forma en que se van a representar los datos del archivo que se pretende transferir

1- Tipo del archivo (Local Binario EBCDIC ASCII) 2- Formato del archivo (Nonprint Telnet Fortran) 3- Estructura del archivo (Archivo Registro Paacutegina) 4- Modo de transferencia (Block Compressed Stream)[12]

338 Protocolo TELNET El propoacutesito del protocolo telnet es proporcionar la facilidad bidireccional necesaria para que diferentes computadoras puedan acceder a cualquier tipo de host dentro de una red Una conexioacuten Telnet utiliza el protocolo de transporte TCP para llevar a cabo el intercambio de datos Cuando la conexioacuten se establece cada extremo de la misma se denomina Terminal virtual de red El Terminal

83

remoto que es el host encargado de proporcionar servicios se denomina servidor y el Terminal local se denomina Terminal de usuario El protocolo Telnet fue desarrollado en base a dos ideas fundamentales la primera es la idea de Terminal virtual de red la segunda es la idea de la negociacioacuten de opciones Esta uacuteltima es importante debido a que numerosos hosts dentro de una red desean proporcionar servicios adicionales a los ya existentes mediante el Terminal virtual de red Utilizando telnet estaacuten disponibles numerosas opciones que permiten al usuario ajustar los paraacutemetros de la conexioacuten de manera que se puedan seleccionar diferentes conjuntos de caracteres tipos de Terminal etc Funcionamiento Cuando una conexioacuten Telnet ha sido establecida cada uno de los implicados intenta obtener el mejor servicio posible por parte del otro Para llevar a cabo tal cometido el protocolo pone a disposicioacuten del usuario una serie de comandos Son los siguientes WILL opcioacuten es enviado por parte de cualquiera de los host implicados en la conexioacuten para indicar el deseo de activar una opcioacuten concreta WONacuteT opcioacuten es enviado por un host cuando quiere informar de que no se realizaraacute la accioacuten especificada DO opcioacuten indica que el emisor del DO desea que el receptor del mismo active la opcioacuten indicada DONacuteT opcioacuten se utiliza para indicar al receptor que el emisor desea que desactive la opcioacuten indicada Para que telnet pueda interoperar entre los diferentes sistemas existentes en las redes TCP IP en necesario que sea capaz de adaptarse a los muacuteltiples sistemas operativos Por ejemplo al pulsar una tecla de control que permite detener un proceso que se esta ejecutando en un host remoto en unos sistemas la secuencia de teclas Control+C permite cancelar un proceso mientras que en otros basta con pulsar la tecla ESC Para lograr este tipo operacioacuten Telnet utiliza Terminal Virtual de Red Cuando se establece la conexioacuten entre el cliente y el servidor el software del cliente traduce las pulsaciones del teclado y las secuencias de comandos al formato del NVT y las enviacutea al servidor El software del servidor por su parte traduce los datos que tienen formato NVT al formato del sistema local utilizado

84

Transmisioacuten de datos Aunque una conexioacuten telnet a traveacutes de una red es intriacutensecamente full-duplex el Terminal Virtual de Red es un dispositivo half-duplex que utiliza un buffer de una liacutenea Es decir mientras las opciones no se negocien de nuevo las condiciones indicadas a continuacioacuten persisten durante la transmisioacuten de datos a lo largo de la conexioacuten Mientras el buffer del host lo permita los datos deben acumularse en el host en el que se estaacuten generando hasta que se tenga una liacutenea completa de datos preparados para enviar o hasta que una sentildeal de transmisioacuten especiacutefica ocurra Esta sentildeal puede ser generada por un proceso o por un usuario La razoacuten de esta regla se debe al costo que conlleva procesar interrupciones a traveacutes de la red En general la mayoriacutea de los sistemas llevan a cabo acciones necesarias cuando se ha completado una liacutenea del buffer de entrada sin embargo un usuario o un proceso quizaacute necesite enviar datos antes de que el buffer de salida este completamente lleno Cuando un proceso ha completado el enviacuteo de sus datos a una impresora conectada a un Terminal Virtual de Red y no tiene maacutes informacioacuten en su buffer de enviacuteo tiene que enviar el comando GA (Go Ahead) Funciones de Control Durante una sesioacuten Telnet es necesario traducir una serie de coacutedigos de control a comandos de telnet y enviarlos al sistema operativo del host remoto Estos comandos de Telnet se representan con byte denominado IAC seguido de uno o maacutes bytes de coacutedigo IP Interrupt Process (Interrumpir Proceso) Muchos sistemas incluyen una funcioacuten que permite suspender interrumpir abortar o terminar la operacioacuten de un proceso de usuario Esta funcioacuten se utiliza frecuentemente cuando un usuario asume que un proceso estaacute dentro de un bucle sin fin AO Abort Output (Abortar la Salida) Esta funcioacuten permite a un proceso que esta generando una salida ejecutarse sin enviar el resto de la salida de la operacioacuten actual EC Erase Caraacutecter (Borrar caraacutecter) Pide a la aplicacioacuten remota que borre el caraacutecter actual Debido a que la informacioacuten que se enviacutea se hace caraacutecter a caraacutecter cuando un usuario se equivoca al teclear un caraacutecter necesita enviar este comando para que se borre el caraacutecter en la aplicacioacuten remota

85

EL Erase Line (Borrar Linea) Pide a la aplicacioacuten remota que borre la liacutenea actual AYT are you there (iquestEstaacutes Ahiacute) Esta funcioacuten solicita al servidor que muestre una indicacioacuten para verificar que sigue en funcionamiento Sentildeales de sincronismo Cuando un Terminal enviacutea una interrupcioacuten el sistema operativo del host lo enviacutea de inmediato Sin embargo debido a que Telnet funciona sobre TCP los datos se entregan en orden y puede ocurrir que pase un pequentildeo periodo de tiempo hasta que el servidor remoto notifique la presencia del comando de interrupcioacuten entre el flujo de datos El cliente puede pretender informar al servidor de que se debe eliminar todos los caracteres que no sean comandos y que tenga almacenados hasta el momento Para evitar este problema se realizan las siguientes acciones El segmento de datos se enviacutea etiquetado con el flan urgente activado El servidor elimina todo aquello que no sean comandos hasta que le llega un coacutedigo especial de comando llamado DM (Marca de Datos) que indica el punto en que el servidor debe dejar de eliminar datos Una Marca de Datos indica el punto en que el servidor deje de eliminar datos[12] 339 DHCP (Dinamic Host Configuration Protocol) El protocolo de configuracioacuten dinaacutemica de Hosts proporciona los paraacutemetros de configuracioacuten especiacuteficos de cada host desde el servidor DHCP hasta los diferentes clientes de la red El segundo es un mecanismo de asignacioacuten de direcciones de red a los hosts El protocolo DHCP trabaja bajo una arquitectura cliente-servidor Por lo tanto para que un equipo perteneciente a la red haga el trabajo de servidor DHCP eacuteste tiene que haber sido expresamente asignado como tal por el administrador de la red El protocolo DHCP utiliza tres mecanismos para llevar a cabo la asignacioacuten de direcciones IP El primero de los mecanismos es la asignacioacuten automaacutetica mediante la cual el servidor DHCP asigna direcciones IP

86

permanentes a las diferentes estaciones de la red El segundo de los mecanismos es la asignacioacuten dinaacutemica con ella las estaciones de la red reciben una direccioacuten IP durante un periacuteodo de tiempo determinado Por uacuteltimo en la asignacioacuten manual las estaciones reciben una direccioacuten IP fijada con anterioridad por el administrador de la red y es el servidor DHCP el encargado de transferir dicha direccioacuten a los clientes de la red Funcionamiento Cuando se disentildeo este protocolo los objetivos eran los siguientes No tener que configurar manualmente los clientes Tener un protocolo que pueda funcionar a traveacutes de los routers de la red de tal forma que no exista la necesidad de instalar un servidor en cada subred DHCP debe ser capaz de interoperar con el BOOTP relay agent DHCP debe poder dar servicio a los clientes BOOTP Desde el punto de vista del cliente DHCP es una extensioacuten del protocolo BOOTP lo cual les permite interactuar con los servidores sin necesidad de cambiar software de inicializacioacuten de los clientes Sin embargo existen algunas diferencias entre los protocolos En primer lugar DHCP define mecanismos a traveacutes de los cuales los clientes puedan recibir una direccioacuten IP durante un periacuteodo de tiempo finito En segundo lugar DHCP proporciona los mecanismos necesarios para que un cliente de red reciba todos los paraacutemetros de configuracioacuten necesarios para poder operar El primer servicio ofrecido por un servidor DHCP es el almacenamiento de los paraacutemetros de red de un cliente Para ello el servidor DHCP utiliza un identificador de cliente que generalmente suele ser el par ldquo direccioacuten IP-direccioacuten MACrdquo aunque perfectamente podriacutea ser ldquodireccioacuten IP-nombre hostrdquo El cliente puede ejecutar una consulta al servicio DHCP para que este le devuelva sus paraacutemetros de configuracioacuten El segundo servicio ofrecido es la asignacioacuten de direcciones IP a los clientes de la red El cliente solicita el uso de una direccioacuten IP durante un periacuteodo de tiempo determinado llamado ldquoperiacuteodo de alquilerrdquo el servidor DHCP intentaraacute asignar la misma direccioacuten IP que dicho cliente utilizoacute por uacuteltima vez Si el cliente lo considera necesario puede solicitar una direccioacuten IP durante un periacuteodo de tiempo infinito En cualquiera de los casos el servidor DHCP nunca asignaraacute una direccioacuten IP con un periacuteodo de alquiler infinito debido a que debe ser capaz de detectar cuaacutendo una estacioacuten ha sido retirada

87

Construccioacuten y enviacuteo de mensajes DHCP DHCP utiliza como protocolo de transporte UDP Los mensajes que los clientes enviacutean a los servidores van dirigidos al puerto 67 mientras que los mensajes que los servidores enviacutean a los clientes lo hacen hacia el puerto 68 Cuando un cliente enviacutea un mensaje DHCP a un servidor debe incluir la direccioacuten de eacuteste en el campo server identifier Si el servidor DHCP y el cliente DHCP estaacuten conectados a la misma subred el mensaje que enviacutea el cliente debe llevar el valor de cero en el campo giaddr En tal caso el servidor debe colocar su direccioacuten de red en el campo Server identifier Si el servidor dispone de mas de una direccioacuten de red cualquiera de ellas es candidata a aparecer en dicho campo Si en un mensaje DHCP el campo giaddr tiene un valor distinto de cero el servidor DHCP se encarga de enviar dicho mensaje al puerto del servidor DHCP del agente relay BOOTP cuyo identificador aparece en el campo giaddr Funcionamiento Cuando un servidor recibe un mensaje DHCPDISCOVER de un cliente el servidor elige una direccioacuten de red para el cliente Si no existen direcciones de red disponibles el servidor informa del problema al administrador de la red Si existen direcciones disponibles se eligen en orden Se elige la direccioacuten actual del cliente La uacuteltima direccioacuten IP que tuvo el cliente La direccioacuten que el cliente solicita en el mensaje de peticioacuten Una nueva direccioacuten de red de entre todas las disponibles El servidor puede elegir un periacuteodo de alquiler siguiendo el orden de Si el cliente no ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER y ademaacutes ya tiene una direccioacuten de red el servidor devuelve el mismo periacuteodo de alquiler que asignoacute en la uacuteltima concesioacuten Si el cliente no ha sugerido ninguacuten periacuteodo de alquiler y el cliente no tiene asignada una direccioacuten de red el periacuteodo de alquiler que se le asigna al cliente es aquel que viene por defecto Si el cliente ha sugerido un periacuteodo de alquiler en el mensaje DHCPDISCOVER el servidor puede elegir entre devolver el periacuteodo solicitado por el cliente o elegir otro distinto[12]

88

3310 HTTP (Hypertext Transfer Protocol) Actualmente el servicio maacutes difundido de Internet es WWW (World Wide Web) es un servicio que reuacutene dos potentes teacutecnicas Por un lado la buacutesqueda de la informacioacuten y por otro lado el Hipertexto El hipertexto es una forma de organizar la informacioacuten de forma que alguna partes del texto denominadas enlaces se muestran resaltadas permitiendo acceder al pulsar sobre ellas a diferentes partes del mismo documento a otros documentos diferentes independientemente de su localizacioacuten Tras la idea de la creacioacuten del hipertexto surgioacute la idea de la hipermedia en la cual mediante enlaces es posible acceder a imaacutegenes animaciones viacutedeo sonido etc El HTTP es un protocolo de nivel de aplicacioacuten utilizado para el intercambio de informacioacuten hipermedia dentro de la www Su funcionamiento es muy sencillo El cliente se conecta al servidor web El cliente enviacutea una peticioacuten El servidor responde a dicha peticioacuten HTTP es un protocolo que se basa en la filosofiacutea cliente-servidor Un cliente enviacutea un mensaje compuesto por un comando un identificador de recurso y la versioacuten del protocolo seguido del cuerpo del mensaje el contiene informacioacuten del cliente La respuesta que enviacutea el servidor esta formada por una liacutenea de estado que incluye la versioacuten del protocolo y un coacutedigo de respuesta que determina de que modo se llevoacute acabo la operacioacuten A continuacioacuten va el cuerpo del mensaje La conexioacuten debe ser iniciada por el cliente y cerrado por el servidor pero se debe tener en cuenta que una conexioacuten pede cerrarse de manera prematura debido a una accioacuten del usuario por el vencimiento de los temporizadores o al fallo de un programa Especificacioacuten de protocolo HTTP utiliza un sistema de numeracioacuten del tipo ltmajorgt ltminorgt para indicar las versiones del protocolo Mediante este mecanismo el emisor puede indicar el formato del mensaje y su capacidad para entender futuras comunicaciones http El nuacutemero minor se incrementa cuando los cambios realizados al protocolo antildeaden caracteriacutesticas que no cambian el formato general del algoritmo utilizado para analizar sintacticamente el mensaje pero que siacute dotan de mejoras adicionales al emisor El nuacutemero

89

mejor se incrementa cuando el formato del mensaje dentro del protocolo se ha cambiado La versioacuten del mensaje HTTP se indica en el campo http-version en la primera liacutenea del mensaje en caso de no especificarse se asume que el mensaje tiene el formato http10 El proceso de comunicacioacuten entre un cliente y un servidor puede ser directo cuando los mensajes no atraviesan ninguacuten intermediario o puede ser indirecto cuando el mensaje debe atravesar diferentes entidades intermediarias tales como Proxy o un gateway La entidades como Proxy mejora la velocidad y por lo tanto el rendimiento de la red debido a que eacuteste almacena en una memoria cacheacute la informacioacuten devuelta como respuesta a las diferentes solicitudes que enviacutea el cliente y en caso de recibir peticiones de datos que ya tiene almacenados los devuelve sin tener que realizar una nueva conexioacuten al servidor que los contiene Tanto los proxys como los gateway deben tener cuidado con las diferentes versiones del protocolo ya que este nuacutemero establece la capacidad que tiene un cliente o un servidor para poder interpretar la informacioacuten correctamente Si en un extremo de la red se encuentra un host que enviacutea mensajes con la versioacuten http11 y en el otro extremo se encuentra otro host con la versioacuten http10 tanto el Proxy como el gateway deben filtrar la informacioacuten actuando de acuerdo a una serie de normas Si la versioacuten http del host emisor es mayor que la del host receptor deben degradar la versioacuten o emitir un mensaje de error Si la versioacuten http del host emisor es menor que la del host receptor pueden actualizarla o dejarla pasar sin realizar ninguacuten tratamiento [12] 3311 IRC (Internet Relay Chat) Es un protocolo que permite la creacioacuten de conversaciones multiusuario en tiempo real Un escenario tiacutepico de IRC comprende varios servidores que forman la red de IRC y a los cuales se conectan los clientes Los clientes se veraacuten entre si siempre y cuando esteacuten conectados a la misma red de IRC El entorno en el que se desarrollan las conversaciones se organiza en canales Un canal es un grupo de clientes los cuales recibiraacuten uacutenicamente aquellos mensajes dirigidos al canal Los canales son compartidos entre todos los servidores de la red Entre los servidores y los clientes hay un intercambio continuo de mensajes Funcionamiento Estructura de los mensajes

90

Los mensajes se componen de tres partes un prefijo opcional un comando y los paraacutemetros del comando El prefijo es usado por los servidores para indicar el origen del mensaje Si un mensaje comienza por el caraacutecter de dos puntos acuteacute quiere decir que a continuacioacuten viene el prefijo Si un mensaje no lleva prefijo significa que ha sido originado en el servidor desde el cual nos llega Limitaciones Los mensajes del IRC deben tener una longitud maacutexima de 512 caracteres incluidos el retorno de carro y el avance de liacutenea que deben ir situados al final de cada mensaje Otras limitaciones vienen dadas por el nombre o nick del cliente que seraacute el identificador por el cual se le conozca dentro de la red del IRC Este nombre no podraacute sobrepasar los nueve caracteres Los nombres de los canales no pueden pasar de 200 caracteres siendo obligatorio que comiencen por acuteacute o acuteampacute y no pueden contener espacios comas o el caraacutecter ASCII 7 El nuacutemero de paraacutemetros de un comando no podraacute ser superior a 15 Distribucioacuten de los mensajes Uno a uno (unicast) Es la comunicacioacuten establecida entre dos clientes Los servidores deben ser capaces de transportar el mensaje de un cliente a otro por el camino maacutes corto a lo largo de la red de servidores Uno a muchos (multicast) Ofrece la posibilidad de que un cliente se comunique con varios clientes simultaacuteneamente Hay tres acercamientos

bull A traveacutes de una lista de clientes Un cliente enviacutea un mensaje a una lista de clientes el servidor toma esta lista y crea un mensaje por cada destinatario Este meacutetodo puede provocar que un servidor reciba varias veces un mismo mensaje si va destinado a varios clientes conectados a eacutel Es poco eficiente

bull A traveacutes de un canal Un cliente enviacutea un mensaje al canal Cada cliente que esteacute en ese canal recibiraacute el mensaje Si hay varios clientes del canal en un mismo servidor el mensaje seraacute enviado una sola vez al servidor el cual se encargaraacute de daacuterselo a cada uno de sus clientes del canal Este meacutetodo es maacutes eficiente que el anterior

bull Mensajes a servidores Los operadores de los canales pueden enviar un mensaje a todos aquellos clientes cuya direccioacuten coincida con un patroacuten especificado o que esteacuten conectados a un servidor concreto

91

Uno a todos (broadcast) Se enviacutea un mensaje a todos los clientes todos los servidores o ambos Normalmente estos mensajes son usados por los servidores para comunicar al resto un cambio de estado [12] 3313 PPP (Point to Point Protocol) PPP fue disentildeado para permitir el intercambio de datagramas entre dos hosts a traveacutes de un enlace de comunicaciones Dicho enlace debe ofrecer una combinacioacuten full duplex y un transporte ordenado de los datagramas PPP se ha establecido como el protocolo estaacutendar para acceso a redes TCPIP a traveacutes de liacuteneas serie El antecesor de PPP es el protocolo SLIP (serial Line IP) algunas de sus restricciones lo hacen poco versaacutetil para las necesidades actuales El protocolo PPP tiene tres componentes principales Encapsulacioacuten Ofreciendo la posibilidad de multiplexar diferentes protocolos de nivel de red sobre un mismo enlace serie LCP (Link Control Protocol) El protocolo de control de enlace configuraraacute las opciones de encapsulacioacuten el tamantildeo de los paquetes detectaraacute cualquier error de configuracioacuten en los hosts autentificaraacute al otro extremo del enlace terminaraacute el enlace etc NCPs (Network Control Protocols) Manejaraacuten las particularidades de los diferentes protocolos a nivel de red con los que PPP puede trabajar El paquete PPP tiene la siguiente estructura

Protocolo ---- Informacioacuten---- Relleno Protocolo Este campo puede ser de 8 oacute 16 bits Identifica al paquete encapsulado en el campo de informacioacuten Hay algunos valores reservados para uso interno del protocolo Informacioacuten- Este campo puede ser de 0 o varios bytes Contendraacute el datagrama para el protocolo indicado en el primer campo El tamantildeo maacuteximo del campo de informacioacuten viene dado por el valor MRU (Maximum Receive Unit) el cual tiene un valor por defecto de 1500 bytes aunque pueden tomar otros valores tras el proceso de negociacioacuten al establecer la conexioacuten

92

Relleno Opcionalmente el campo de informacioacuten podriacutea ser completado con bytes de relleno hasta alcanzar el nuacutemero de bytes indicado en el MRU El paquete PPP deberaacute ser encapsulado a su vez en una trama a nivel de enlace El formato de trama elegido es el HDLC (high Level Data Link Control) Que tiene el siguiente formato

Flag - Direccion - Control - datos - CRC Flag El campo Flag tiene un valor fijo de 0x7E y marca el comienzo y final de cada trama Los campos de direccioacuten y control deberaacuten tener valores de 0xFF y 0x03 respectivamente Dentro del campo de Datos cualquier caraacutecter con valor 0x7E deberaacute tratarse forma especial para que no se confundan con los campos de flag para ello los valores de 0x7E en los datos se convertiraacuten en la pareja de valores 0x7D 0x5D El valor 0x7D identifica al caraacutecter de escape usado para anular los valores con significado especial por su parte el valor 0x5D es el valor original 0x7E pero con un sexto bit cambiado De igual forma el propio caraacutecter de escape deberaacute ser anulado si se encuentra en el campo de datos El procedimiento es el mismo al encontrar un valor de 0x7D se cambiaraacute el sexto bit pasando a tener un valor de 0x5D A este nuevo valor se le antepone el caraacutecter de escape 0x7D Cualquier caraacutecter que pueda ser tratado de forma especial y que se encuentre en el campo de datos deberaacute ser anulado siguiendo el mismo procedimiento Establecimiento del enlace Para establecer el enlace cada host debe enviar en primer lugar enviar paquetes LCP que configuren y comprueben en enlace de datos Una vez establecido el enlace se procede a la autentificacioacuten si eacutesta es necesaria El siguiente paso es el enviacuteo de paquetes NCP para seleccionar aquellos protocolos de nivel de red que seraacuten encapsulados Una vez hecha esta seleccioacuten y configuracioacuten ya pueden proceder ambos extremos del enviacuteo de datagramas El enlace se mantendraacute hasta que se cierre expliacutecitamente mediante un paquete LCP o NCP o alguacuten suceso externo lo fuerce Todo proceso se inicia y finaliza en el estado inicial En este estado se supone que el enlace fiacutesico no esta disponible Establecer enlace el

93

protocolo de control de enlace LCP realizaraacute un intercambio de paquetes de configuracioacuten entre los dos extremos Si el proceso de configuracioacuten falla se volveraacute al estado inicial en otro caso se pasaraacute a la fase de autentificacioacuten La fase autentificar Host es opcional de requerirse un proceso de autentificacioacuten este debe tener lugar antes de proceder a cualquier intercambio de paquetes a nivel de red El protocolo usado para la autentificacioacuten se habraacute negociado en la fase anterior de establecimiento del enlace Si la autentificacioacuten falla se procederaacute a la desconexioacuten del mismo en caso contrario se podraacute comenzar la configuracioacuten de los protocolos de red La fase de configurar protocolos de red permitiraacute configurar cada protocolo de red independientemente A partir de este momento ya podraacuten intercambiarse paquetes de datos La fase finalizar enlace daraacute por terminado el enlace Esta finalizacioacuten se realizaraacute de forma ordenada mediante los paquetes LCP correspondientes indicando a los protocolos de nivel de red la finalizacioacuten inminente del enlace para que tomen las acciones apropiadas Una vez separada esta fase el nivel fiacutesico desconectaraacute definitivamente el enlace de datos y se pasariacutea al estado inicial [12] 3314 RDP RDP (o Protocolo de Escritorio Remoto) permite que una teacuterminal basada en Windows u otros clientes tambieacuten bajo Windows puedan comunicarse con un servidor Terminal Server RDP funciona a traveacutes de cualquier conexioacuten TCPIP incluidas una conexioacuten de acceso telefoacutenico una red de aacuterea local (LAN) una red de aacuterea extensa (WAN) una Red digital de servicios integrados (ISDN) DSL o una Red privada virtual (VPN) [10] 3315 IPXSPX Internet Packet eXchangeSequenced Packet eXchange Se desarrollo a principios de 1980 por Xerox Utilizado en las redes Novell Netware Este protocolo ha probado ser muy seguro y raacutepido Su esquema de direccionamiento es una direccioacuten de nodo numeacuterico y una direccioacuten de red hexaacutedecimal asignada por la aplicacioacuten cliente NetWare en la estacioacuten de trabajo y durante la instalacioacuten en el servidor Actualmente Novell utiliza IP pero debido a la influencia de Internet se ha visto forzado a mejorar su liacutenea de productos para aceptar TCP IP [10][11]

94

3316 NetBEUI El protocolo NETBIOS interfaz de usuario extendido fue desarrollado por Microsoft e IBM aproximadamente en 1987 para usarlo inicialmente con OS2 LAN Server y posteriormente con el producto LAN Manager de Microsoft NetBEUI se disentildeo estrictamente para redes de aacuterea local a finales de los 80 y principios de los 90 Soacutelo unos cuantos previeron la explosioacuten de Internet y el deseo de conectar organizaciones a ella Por esta razoacuten NetBEUI se implementoacute como un protocolo de transmisioacuten muy raacutepido pero muy informal esto significa que un paquete NetBEUI no contiene direcciones de origen ni destino y asiacute todas las computadoras en la red deben estar atentas de escuchar los mensajes dirigidos a ellas Sin direcciones de origen ni destino NetBEUI no es enrutable Por lo tanto esta destinado a pequentildeas LAN no conmutadas y sin enlutar [11] 3317 AppleTalk Desarrollado originalmente para las computadoras Macintosh como una manera de compartir costosas impresoras LaserWriter de Apple en la deacutecada de 1980 El sistema base (Apple Talk Phase I) permite compartir archivos e impresora hasta a 254 equipos mientras que Apple Talk Phase II soporta hasta 16 millones de nodos Apple Talk es relativamente faacutecil de implementar en otros sistemas ya que se adapta bien al protocolo OSI y permite la sustitucioacuten de protocolos en diferentes niveles para permitir la integracioacuten con otros sistemas Apple Talk ofrece por si mismo una velocidad de transferencia de 230 Kbseg (Kilobit por segundo) LocalTalk Es la forma original del protocolo La comunicacioacuten se realiza por uno de los puertos serie del equipo La velocidad de transmisioacuten no es muy raacutepida pero es adecuada para los servicios que en principio se requeriacutean de ella principalmente compartir impresoras Ethertalk Es la versioacuten de Appletalk sobre Ethernet Esto aumenta la velocidad de transmisioacuten y facilita aplicaciones como la transferencia de ficheros Tokentalk Es la versioacuten de Appletalk para redes Tokenring [11] 31218 DLC El protocolo Data Link Control se desarrolloacute originalmente para comunicarse con mainframes mediante software de emulacioacuten especial pero ha evolucionado hasta convertirse en el protocolo de red predeterminado de muchas impresoras de interfaz de red pero estas impresoras deben de utilizar un servidor de impresioacuten de red residente en

95

un equipo de red y en la impresioacuten en red de Microsoft por supuesto deben compartirse El recurso compartido Bloque de mensajes de servidor SMB para cada impresora se mantiene en la computadora que funge como servidor de impresioacuten asiacute como la cola de impresioacuten o la cola de espera de impresioacuten para esa impresora [11] 31219 Protocolo PXE Es el sistema de Intel cuyas siglas PXE significan Preboot eXecution Enviroment (entorno de ejecucioacuten de prearranque) Las tarjetas de red compatibles con el protocolo PXE pueden utilizarse como sistema de arranque El protocolo PXE toma el control del sistema antes que cualquier otro dispositivo (Disco duro disquete CD-Rom o cualquier otro recurso local) y enviacutea a la red peticiones El protocolo PXE opera de la siguiente manera cuando el usuario enciende el equipo la memoria ROM de inicio solicita al servidor DHCP una direccioacuten IP y el nombre del servidor de inicio El servidor DHCP contesta a esta peticioacuten enviaacutendole la direccioacuten IP del servidor de inicio asiacute como informacioacuten adicional Gracias a estos datos la memoria ROM solicita al servidor de inicio la rutina de inicio El servidor de inicio le responde enviaacutendole dicha rutina mediante el protocolo TFTP (Trivial File Transfer Protocol o Protocolo trivial de transferencia de archivos) y de esta forma el equipo cliente puede comenzar el proceso de arranque El sistema cliente no necesita ninguacuten controlador de ninguna marca determinada ya que las tarjetas NIC compatibles con PXE utilizan la interfaz UNDI (Universal Network Driver Interface o Interfaz universal de controladores de red) Tras enviarle la rutina de inicio al equipo cliente el servidor le enviacutea tambieacuten una serie de programas adicionales como el Asistente para instalacioacuten de clientes de RIS que pone a disposicioacuten del usuario el menuacute de imaacutegenes existentes en el servidor La fase inicial de este protocolo se basa en un subconjunto de los mensajes DHCP para permitir al cliente detectar un servidor de inicio (es decir un servidor que proporciona archivos ejecutables para la instalacioacuten de nuevos equipos) El cliente puede aprovechar para obtener una direccioacuten IP (que es el comportamiento esperado) pero no es necesario hacerlo La segunda fase de este protocolo se produce entre el cliente y un servidor de inicio y usa el formato de mensaje DHCP como formato adecuado para la comunicacioacuten Por lo demaacutes esta segunda fase del protocolo no estaacute relacionada con los servicios DHCP estaacutendar [9] En el diagrama fig 34 de describe el funcionamiento del protocolo PXE Se proporciona una descripcioacuten detallada de los formatos de los paquetes

96

Fig 34 Esquema del funcionamiento del protocolo PXE [9]

Paso 1

bull El cliente enviacutea un mensaje DHCPDISCOVER hacia un servidor DHCP Puerto 67

bull Una etiqueta de identificacioacuten del cliente UUID bull Una etiqueta de identificacioacuten de cliente UNDI bull Una etiqueta de la arquitectura del sistema del cliente bull Una direccioacuten DHCP option 60 Class ID set to

PXEClientArchxxxxxUNDIyyyzzzrdquo Paso 2 Los servicios DHCP o Proxy responden enviando un mensaje DHCPOFFER al cliente a traveacutes del puerto 68 Si se trata de un servicio Proxy entonces el

Paso 1

Paso 2

Paso 3

Paso 4

Paso 5

Paso 6

Paso 7

Paso 9

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

Cliente PXE

DHCP0 Proxy

Servicio DHCP

DHCP0 Proxy

Servicio DHCP

Servicio arranque

MTFTP Servicio

Cliente PXE Servidor de arranque

Servicio de arranque puerto 67 oacute 4011 Contiene Cliente PXE etiquetas de extensioacuten + [otras etiquetas DHCP]

Servicio de arranque ACK contesta al puerto de origen del cliente Contiene [Etiquetas de extensioacuten del Servidor PXE contiene Nombre del archivo de Programa de arranque de Red

Programa de arranque de Red descarga peticioacuten a TFTP por el puerto 69 o puerto de MTFTP (desde el servicio de arranque ACK )

El Programa de arranque de Red descarga al puerto del cliente

Comando Discover al puerto 67 Contiene las etiquetas de extensioacuten del cliente PXE

La extensioacuten DHCP por el puerto 68 contiene Etiquetas de extensioacuten del servidor PXE + otras etiquetas DHCP + direccioacuten IP del cliente

La peticioacuten DHCP para el servidor de instalacioacuten al puerto 68 contiene Etiquetas de extensioacuten del cliente PXE + otras etiquetas DHCP

Respuesta DHCP ACK por puerto 68 DHCP Proxy DHCP Server

ejecuta la imagen de

autoarranquedescargada

97

campo de la direccioacuten IP es nulo (0000) Si se trata de un servicio DHCP entonces el campo de la direccioacuten IP es vaacutelido En este punto otros servicios de DHCP y servicios de BOOTP responden a traveacutes del puerto 68 Cada mensaje contiene paraacutemetros estaacutendar DHCP Una direccioacuten IP para el cliente y otros paraacutemetros que el administrador podriacutea haber configurado sobre el servicio DHCP o Proxy El tiempo de respuesta desde el servidor DHCP es estaacutendar El tiempo para recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER Proxy esta basado sobre un DHCP estaacutendar el tiempo es sustancialmente menor para permitir una operacioacuten razonable El tiempo liacutemite para una respuesta de un servidor DHCP es estaacutendar El tiempo para difundir de nuevo y recibir un DHCPOFFER con extensiones PXE o un DHCPOFFER estaacute basada en el tiempo estaacutendar DHCP pero este tiempo es considerablemente menor para permitir la operacioacuten razonable del cliente en el estaacutendar BOOTP o los ambientes DHCP que no proveen de un DHCPOFFER de extensiones PXE Paso 3

bull Del DHCPOFFER (s) que esto recibe el cliente registra lo siguiente bull La direccioacuten IP (y otros paraacutemetros) ofrecido en un estaacutendar DHCP o

Servicio de BOOTP bull El Servidor de autoarranque cataloga del campo de Servidor de

autoarranque en las etiquetas PXE DEL DHCPOFFER bull Las opciones de control descubiertas (si son provistas) bull La direccioacuten IP descubierta por multicast (si es provista)

Paso 4 Si el cliente selecciona una direccioacuten IP ofertada por un servicio de DHCP entonces debe completar el protocolo estaacutendar DHCP enviando un aviso de regreso de la direccioacuten IP obtenida y luego espera la confirmacioacuten del Servicio Si el cliente selecciona una direccioacuten de IP de parte del protocolo BOOTP simplemente usa la direccioacuten Paso 5 El cliente selecciona y descubre a un Servidor de autoarranque Este paquete puede ser enviado por (broadcast) (puerto 67) multicast (puerto

98

4011) o unicast (puerto 4011) dependiendo de las opciones de control incluidas en el DHCPOFFER anterior que contienen las etiquetas de extensioacuten de servicio de PXE Este paquete es el mismo DHCPDISCOVER del Paso 1 pero es cifrado como un DHCPREQUEST y ahora contiene lo siguiente

bull La direccioacuten IP asignada al cliente desde un Servicio de DHCP bull Una etiqueta identificador de cliente (UUID) bull Una etiqueta para el cliente UNDI bull Una etiqueta para la arquitectura de sistema del cliente bull Una opcioacuten DHCP 60 Clase ID juego a

PXECLIENTARCHXXXXXUNDIYYYZZZ bull El Servidor de autoarranque teclea un campo de opcioacuten PXE

Paso 6 El Servidor de autoarranque unicasts un paquete DHCPACK atraacutes al cliente sobre el puerto de fuente de cliente Este paquete de respuesta contiene

bull Nombre del archivo de autoarranque bull MTFTP1 paraacutemetros de configuracioacuten bull Cualquier otra opcioacuten que el NBP requiere antes de que

satisfactoriamente pueda ser ejecutado Paso 7 El cliente descarga el archivo ejecutable que usa estaacutendar TFTP (port69) o MTFTP (el puerto asignado en el paquete de Servidor de autoarranque Ack) El archivo descargado y la colocacioacuten del coacutedigo descargado en la memoria es dependiente de la arquitectura de CPU del cliente Paso 8 El cliente PXE determina si requieren una prueba de autenticidad sobre el archivo descargado Si requieren la prueba el cliente enviacutea otro mensaje DHCPREQUEST al servidor de autoarranque que solicita(ruega) un archivo de cartas credenciales para el archivo de autoarranque antes descargado descarga las cartas credenciales viacutea TFTP O MTFTP y realiza la prueba de autenticidad Paso 9 Finalmente si la prueba de autenticidad tuvo eacutexito o no requirioacute entonces el cliente PXE inicia la ejecucioacuten del coacutedigo descargado [9]

99

CAPIacuteTULO 4

DISENtildeO E IMPLEMENTACIOacuteN El desarrollo del presente capiacutetulo comprende la parte medular de este trabajo de tesis es aquiacute donde se detalla el coacutemo se fue construyendo el sistema ldquoDisentildeo e implementacioacuten de un sistema de consulta remota para una bibliotecardquo se describe la fase de conexioacuten el coacutedigo que se utilizoacute para las configuraciones de los servicios DHCP TFTP LSTP del equipo servidor y del equipo cliente PXE la interfaz entre estos asiacute como la presentacioacuten del disentildeo del sistema de consulta del acervo bibliograacutefico del CIDETEC el cual fue programado en Gambas 41 Requerimientos teacutecnicos para la realizacioacuten del proyecto En materia de hardware La seleccioacuten de las especificaciones teacutecnicas del servidor es fundamental entre mejor sea este otorgaraacute un mejor servicio pero se tendraacute que considerar que la memoria RAM debe ser siempre oacuteptima entre mayor sea esta siempre seraacute mejor Para el proyecto se adoptoacute una computadora con caracteriacutesticas regulares como equipo servidor

bull Una PC con procesador Core 2 DUO tarjeta de red integrada

disco duro de 120 GB y memoria RAM de 1GB

bull Para los equipos cliente se utilizaron cinco computadoras de diferentes marcas modelos y capacidades con tarjeta de red integrada de 100 Mbps con soporte PXE que permitan el arranque mediante red las especificaciones teacutecnicas de ellas fueron por ejemplo equipos con procesador Pentium III a 850 Mhz memoria RAM de 128 MB disco duro de 15 GB (el disco duro para este proyecto no es necesario) con monitor VGA teclado y ratoacuten PS2

bull Red LAN de 100 Mbps

bull Un switch para realizar la interconexioacuten entre el servidor y los

equipos clientes

bull Cable UTP de categoriacutea 5

100

En materia de software Para el desarrollo del proyecto se utilizoacute software libre Considerando que uno de los objetivos es minimizar gastos y tomando en cuenta que lo que se desea es ahorrar en hardware por consiguiente se debe tambieacuten de ahorrar en software Expuesto lo anterior se decidioacute que por sistema operativo se emplearaacute alguna de las distribuciones de Linux en particular se consideroacute que fuese UBUNTU 710 por ser la versioacuten mas reciente en el momento en que se empezoacute este proyecto Las herramientas elegidas para desarrollar el proyecto fueron las siguientes

bull Sistema Operativo Ubuntu v 710

bull La base de datos MySQL v 50

bull Lenguaje de Programacioacuten GAMBAS v 19

bull Empleo de Protocolos remotos PXE DHCPTFTP 42 Descripcioacuten de las herramientas de software para el desarrollo del proyecto A continuacioacuten se detallan las caracteriacutesticas generales de las herramientas de software seleccionadas 421 iquestPorqueacute Ubuntu El empleo del software libre cada vez esta tomando mas fuerza incluso a nivel empresarial debido a que ofrece formas de adquisicioacuten mas flexibles que el software de propietario este ha comprobado que cuenta con equivalentes de las aplicaciones mas populares ademaacutes de ser compatible con ellas Lo cual ha redundado en la ganancia de colaboradores y nuevos usuarios Ubuntu es una antigua palabra africana que significa humanidad hacia los demaacutes Ubuntu tambieacuten significa soy lo que soy debido a lo que todos somos La distribucioacuten Ubuntu Linux trae el espiacuteritu del concepto Ubuntu al mundo del sofware

101

Ubuntu es un completo sistema operativo GNULinux Estaacute disponible de forma libre y cuenta con apoyo de la comunidad de usuarios y con soporte profesional La comunidad Ubuntu se basa en las ideas consagradas en el Manifiesto Ubuntu

(i) el software deberaacute estar siempre disponible sin costo alguno (ii) dicho software podraacute ser utilizado en la lengua materna del

usuario y a pesar de cualquier discapacidad y (iii) los usuarios siempre tendraacuten la libertad de adaptar y modificar el

software de acuerdo a sus necesidades particulares Esta libertad es la que hace a Ubuntu radicalmente diferente del software propietario tradicional no es soacutelo que esteacute disponible de forma gratuita si no que tambieacuten se tiene el derecho a modificarlo para que trabaje de la forma que se desea Pero maacutes allaacute de utopiacuteas y de buenas intenciones se tuvo que tomar en cuenta para su seleccioacuten que es un sistema operativo estable y confiable Ubuntu asegura una nueva distribucioacuten cada 6 meses con las uacuteltimas versiones del kernel (el nuacutecleo del sistema operativo) del entorno graacutefico (Gnome) y de las aplicaciones clave y un entorno de escritorio consistente Ubuntu ha seleccionado un conjunto de aplicaciones de las maacutes de 17000 disponibles en Debian para proporcionar un sistema completo soacutelido y estable De todas formas los usuarios de Ubuntu pueden acceder e instalar las uacuteltimas versiones de cualquier aplicacioacuten aunque no hayan sido supervisadas por Ubuntu 422 Base de datos MySQL La base de datosl fue creada por la empresa sueca MySQL AB la cual tiene el copyright del coacutedigo fuente del servidor SQL asiacute como tambieacuten de la marca

MySQL es un software de coacutedigo abierto licenciado bajo la GPL de la GNU aunque MySQL AB distribuye una versioacuten comercial en lo que se diferencia de la versioacuten libre es en el soporte teacutecnico que se ofrece y la posibilidad de integrar este gestor en un software propietario ya que de otra manera se vulnerariacutea la licencia GPL

El lenguaje de programacioacuten que utiliza MySQL es Structured Query Language (SQL) Lenguaje de Consulta Estructurada que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales

102

Caracteriacutesticas principales

bull El principal objetivo de MySQL es velocidad y solidez bull Soporta gran cantidad de tipos de datos para las columnas bull Gran portabilidad entre sistemas puede trabajar en distintas

plataformas y sistemas operativos bull Cada base de datos cuenta con 3 archivos Uno de estructura

uno de datos y uno de iacutendice y soporta hasta 32 iacutendices por tabla

bull Aprovecha la potencia de sistemas multiproceso gracias a su implementacioacuten multihilo

bull Flexible sistema de contrasentildeas (passwords) y gestioacuten de usuarios con un muy buen nivel de seguridad en los datos

bull El servidor soporta mensajes de error en distintas lenguas VENTAJAS

bull Velocidad al realizar las operaciones lo que le hace uno de los gestores con mejor rendimiento

bull Bajo costo en requerimientos para la elaboracioacuten de bases de datos ya que debido a su bajo consumo puede ser ejecutado en una maacutequina con escasos recursos sin ninguacuten problema

bull Facilidad de configuracioacuten e instalacioacuten bull Soporta gran variedad de Sistemas Operativos bull Baja probabilidad de corromper datos incluso si los errores no se

producen en el propio gestor sino en el sistema en el que estaacute bull Conectividad y seguridad

DESVENTAJAS

bull Un gran porcentaje de las utilidades de MySQL no estaacuten documentadas

bull No es intuitivo como otros programas como por ejemplo File Maker

423 El lenguaje de Programacioacuten GAMBAS Es un lenguaje de Programacioacuten visual con un entorno de desarrollo que se distribuye con la licencia GPL GNU (General Public Licence) Esto significa que se distribuye siempre con el coacutedigo fuente y respeta las cuatro libertades que define la Free Software Foundation

bull La libertad de usar el programa con cualquier propoacutesito (libertad 0)

103

bull La libertad de estudiar como funciona el programa y adaptarlo a las propias necesidades (libertad 1) El acceso al coacutedigo fuente es una condicioacuten previa para esto

bull La libertad de distribuir copias con las que se puede ayudar al vecino (libertad 2)

bull La libertad de mejorar el programa y hacer publicas las mejoras a las demaacutes de modo que toda la comunidad se beneficie (libertad 3)

bull Estas cuatro libertades permiten que quien lo desee venda copias de Gambas entregando siempre el coacutedigo fuente y respetando estas cuatro libertades y por supuesto de cualquier aplicacioacuten desarrollada con este programa Las aplicaciones desarrolladas con Gambas pueden o no acogerse a la licencia GPL lo que quiere decir que estas aplicaciones pueden ser comercializadas

bull Tambieacuten cualquier programador es libre de alterar el propio lenguaje y modificarlo a su gusto siempre y cuando entregue el coacutedigo correspondiente a esas modificaciones y respete los derechos de autor de los desarrolladores originales

En adicioacuten de estas libertades propias de la naturaleza de un proyecto de software libre sobre GNULinux Gambas antildeade maacutes facilidades para el programador

bull Una ayuda muy completa del lenguaje y cada uno de los componentes algo que no es habitual en las aplicaciones del software libre

bull Una API (Interfaz para programar la aplicacioacuten) sencilla y bien documentada lo que facilita a los programadores crear nuevos componentes para gambas

El lenguaje esta preparado para ser independiente del gestor de ventanas que use Lo que significa que sin cambiar una sola liacutenea de coacutedigo una aplicacioacuten puede ser compilada para ser ejecutada en un escritorio GNOME o KDE usando las bibliotecas propias de ese escritorio y siendo una aplicacioacuten nativa de ese entorno En el futuro se pueden desarrollar componentes para Windows Flubox y otros gestores de ventanas y posprogramas no tendraacuten que modificar su coacutedigo para que sean aplicaciones nativas de esos entornos Marcando antes de compilar una opcioacuten en el entorno de desarrollo para elegir el componente a usar eligiendo entre gtk y qt para GNOME o KDE se generan distintas aplicaciones para distintos entornos con el mismo coacutedigo fuente Esta caracteriacutestica no se encuentra presente en ninguacuten otro lenguaje existente lo que convierte a GAMBAS en un entorno uacutenico

104

424 iquestPara que sirven los protocolo PXE DHCP TFTP y LSTP Protocolo PXE Aunque en el capiacutetulo anterior se describioacute el funcionamiento del protocolo PXE de forma puntual se mencionaraacute en este capiacutetulo nuevamente su funcionamiento de manera concisa para mantener la secuencia con las explicaciones posteriores en el desarrollo del sistema PXE trabaja en conjunto con un servidor DHCP y FTP

El servidor DHCP (Dynamic Host Configuration Protocol - Protocolo de configuracioacuten dinaacutemica del anfitrioacuten) Es servidor que utiliza un protocolo de Internet estaacutendar en la industria definido por IETF DHCP fue disentildeado para proporcionar dinaacutemicamente valores de configuracioacuten relacionados con comunicaciones tales como direcciones de red para equipos clientes de red durante el inicio DHCP es definido por los valores 1534 2131 y 2132 de IETF RFC

El servidor TFTP por su parte significa Trivial File Transfer Protocol (Protocolo trivial de transferencia de archivos) Es un protocolo de Internet estaacutendar en la industria definido por IETF que habilita la transmisioacuten de archivos mediante Internet

PXE [pxe] es un Diminutivo de Pre-Boot Execution Environment (Entorno de Ejecucioacuten de Inicio Previo) Es uno de los componentes de la especificacioacuten WfM de Intel Este permite a una estacioacuten de trabajo iniciar desde un servidor o una red antes de cargar el Sistema Operativo desde el disco duro De esta forma se puede cargar un sistema operativo u otro software tal como un programa de diagnoacutestico en la estacioacuten de trabajo desde la red

PXE es un elemento principal de la especificacioacuten WfM Para que una estacioacuten de trabajo cumpla con ser PXE este debe ser soportado por su BIOS y su NIC

La tecnologiacutea PXE mejora la administracioacuten de los clientes de red de muchas formas

Setup remoto de sistemas nuevos si un cliente no tiene un sistema

operativo instalado o no tiene disco duro entonces se puede bajar un Network Bootstrap Program (NBP) [etherboot] desde un servidor de red para proceder con una instalacioacuten remota

105

Inicio Remoto de emergencia esto permite arrancar un imagen ejecutable desde un servidor que permitiraacute realizar tareas de diagnostico y notificacioacuten de fallas

Inicio Remoto desde la Red

PXE abarca dos tecnologiacuteas claves Un protocolo de descubrimiento del Boot Server que el cliente

usaraacute para localizar un tipo especial de Boot server y solicitar el NBP (Network Boot Program ) adecuado

Un conjunto de APIs (Interfaces para programar la aplicacioacutenes) en

el firmware del sistema de Preboot que brindan una serie de servicios al NBP o al BIOS Ver figura 41

Fig 41- Coacutedigo Base para PXE 20

4241 Funcionamiento de PXE PXE es un protocolo relativamente sencillo que desarrollaron en Intel y otros proveedores como parte de la iniciativa Wired for Management PXE se deriva del Protocolo de configuracioacuten dinaacutemica de host (DHCP) que a su vez se deriva de BootP y se suele implementar en la tarjeta de la interfaz de red (NIC)

106

El procedimiento de protocolo se muestra en la figura 42

Fig 42 Secuencia de arranque de PXE

Como puede observarse en el paso 1 Se inicia el BIOS del sistema que determina el orden de arranque En el paso 2 Si el orden de arranque establece PXE por delante de los discos duros unidades flash o CD-ROM o si no estaacuten presentes ninguno de estos dispositivos se carga la interfaz del controlador de red universal (UNDI) de la NIC La NIC ofrece un controlador de dispositivos de red muy pequentildeo y una implementacioacuten del Protocolo trivial de transferencia de archivos (TFTP) Algunas implementaciones de BIOS requieren que los usuarios presionen la tecla F12 para arrancar PXE Esto no es obligatorio y se puede desactivar

1-El cliente PXE enviacutea una solicitud de ldquobroadcastrdquo DHCPDISCOVER a UDP a traveacutes de puerto 67

2-El servidor DHCP enviacutea una respuesta DHCPOFFER que incluye una direccioacuten

IP hacia el puerto 68 3-El cliente enviacutea una peticioacuten DHCPREQUEST al servidor DHCP por el archivo de

arranque (boot file name) 4-El servidor de arranque enviacutea de regreso un paquete DHCPACK que contiene el

programa de arranque de red Network Bootstrap Program (NBP) 5- El cliente solicita el archivo NBP desde el servidor de arranque 6-El NBP es descargado mediante el servicio TFTP y se ejecuta sobre el cliente

DHCP Server DHCP Proxy

Servicio de arranque Servicio TFTP

Servidor de Arranque PXE

Cliente PXE

1

2

6

3

5

4 NIC Protocolo PXE

107

En el paso 3 el sistema comienza a realizar una difusioacuten simple del Protocolo de datagramas de usuario (UDP) en busca de un servidor DHCP Este es realmente el primer paso de la secuencia de arranque de PXE la deteccioacuten Es posible observar que el protocolo es UDP (lo que significa que si auacuten no lo ha hecho deberaacute emplear bastante tiempo con los ruteadores y conmutadores para asegurarse de que se pueden realizar las comunicaciones de PXE) En el paso 4 Si un servidor DHCP recibe la difusioacuten responde a la peticioacuten con una direccioacuten IP Se trata del paso de ofrecimiento Hay que tener en cuenta que PXE no tiene estado y que la cantidad de informacioacuten de estado especiacutefica del sistema que puede ofrecer el cliente en este punto es muy limitada (la direccioacuten MAC y si estaacute disponible el GUID del BIOS de Administracioacuten del sistema tambieacuten conocido como GUID de SMBIOS) En el paso 5 El cliente tras recibir el paquete con la direccioacuten IP establece que necesita maacutes informacioacuten (en particular la direccioacuten del servidor PXE) Se produce otra difusioacuten que contiene la informacioacuten procedente del servidor DHCP que respondioacute originalmente El cliente indica al servidor DHCP Necesito maacutes informacioacuten en concreto necesito la ubicacioacuten de un programa de arranque en red Este es el paso de solicitud En el paso 6 el servidor PXE responde con la direccioacuten del servidor PXE y la ubicacioacuten del programa de arranque en red (NBP) un ejecutable de arranque extremadamente pequentildeo que debe ocupar menos de 32 KB Este es el paso de reconocimiento Es posible observar que si ha instalado Microsoft DHCP y WDS (o ha usado las tecnologiacuteas de otro sistema operativo) se omite el paso de solicitud y de hecho el paquete de ofrecimiento original del servidor DHCP contiene ya la ubicacioacuten del servidor PXE y del programa NBP (por lo que se eliminan dos pasos y se ahorra tiempo) El cliente que tiene la pila del protocolo TFTP que se mencionoacute anteriormente descarga el NBP de la ubicacioacuten de la red que indique el servidor PXE TFTP es un protocolo antiguo muy pequentildeo y sin estado No ofreciacutea buenos niveles de seguridad ni rendimiento (y por ello muchos administradores de ruteadores lo desactivan de forma predeterminada) Debe estar habilitado para que PXE funcione

108

Muchas implementaciones de PXE (incluido RIS) incluyen la capacidad de solicitar al usuario que presione la tecla F12 para continuar al llegar a este punto pero el administrador del servidor PXE suele poder desactivarla Se inicializa NBP En el caso de RIS esto inicia un cargador de arranque de Windows que inicia el proceso de avanzar la implementacioacuten PXE (al menos el protocolo de nivel de arranque) ya no es un componente del proceso Es importante recordar que PXE (RIS WDS o cualquier otra infraestructura) no funciona correctamente con viacutenculos lentos (puede enviar cantidades considerables de datos) o viacutenculos de alta latencia como sateacutelites (la comunicacioacuten no se realiza correctamente y puede que ni siquiera sobreviva) Tal vez se observe en el proceso de arranque de PXE que cuando el cliente enviacutea la solicitud no hay nada que pregunte especiacuteficamente iquestEres mi madre No hay mucha informacioacuten de estado que permita al servidor PXE averiguar la respuesta Generalmente se produce una condicioacuten de carrera (en la que el primer servidor que responda a la solicitud del cliente es el ganador) Hay un par de formas de mitigar este problema bull Ajuste la velocidad de respuesta de uno de los servidores PXE La

latencia de la red y la eficacia del servidor afectaraacuten a la velocidad de respuesta de los servidores De hecho en Microsoft los servidores que usaba Microsoft IT soliacutean ser tan buenos que incluso aunque el servidor PXE estuviese en la oficina los servidores de la empresa ganaban en algunas ocasiones En este caso soacutelo tiene que configurar su servidor PXE local para que no tenga liacutemite de tiempo de espera (con respecto a los clientes preorganizados)

bull Pre organice los clientes Esto es algo muy importante al manipular el servidor PXE para que responda antes que otros servidores de TI de la empresa Al preorganizar los clientes permite que Active Directory comunique a WDS o a RIS que siacute Yo soy tu madre Observe que se prefiere el uso del GUID de SMBIOS como identificador exclusivo para los sistemas en Active Directory pero si un GUID de SMBIOS no estaacute implementado en los sistemas (especialmente en hardware relativamente antiguo) puede (y tendraacute que) usar un GUID basado en la direccioacuten MAC

bull No dejar que las comunicaciones de PXE atraviesen conmutadores o ruteadores coloque un servidor PXE a cada lado El inconveniente es

109

que resulta muy caro de implementar y de mantener (hay que mantener las imaacutegenes de todos los servidores)

Los servidores RIS (y ahora WDS) al igual que los servidores DHCP de Microsoft se deben autenticar con la implementacioacuten de Active Directory a la que estaacuten asociados El objetivo es reducir los problemas que pueden provocar los servidores PXE no autorizados (como tormentas de difusioacuten de PXE) mediante la informacioacuten a Active Directory acerca de estos servidores Observe que lo anterior soacutelo ofrece proteccioacuten frente a los servidores que conozca Active Directory Al establecer su propio dominio o un servidor PXE ajeno a Microsoft este no seraacute el caso 43 Descripcioacuten del procedimiento empleado para la construccioacuten del proyecto 1- Se prepara el servidor instalando inicialmente el sistema operativo

UBUNTU 710 Durante el proceso de instalacioacuten se le indicaraacute el nombre bajo el cual funcionaraacute asiacute como clave y contrasentildea de administrador Cuando esto haya terminado se configura su acceso a red con una direccioacuten IP estaacutetica Y se prueba su funcionamiento

2- Se configura el servidor con los primeros cuatro servicios

a) Servicio con el protocolo PXE para establecer la conexioacuten con el

equipo cliente a este le permitiraacute arrancar desde el servidor b) Servicio con el protocolo DHCP este le proporcionaraacute al equipo

cliente una direccioacuten IP c) Servicio con el protocolo TFTP a traveacutes de el le permitiraacute al equipo

cliente descargar del servidor una copia (imagen) del sistema de arranque la cual contiene una interfaz para su acceso al sistema requiere que se introduzca clave y contrasentildea

d) Servicio LSTP Linux Server Terminal Server Se instala en un servidor para proporcionar a varias estaciones de trabajo entornos ideacutenticos

3- Se instala la base de datos MySQL se configura tambieacuten con una clave

y contrasentildea de administrador (que no es necesariamente la misma que se introdujo para la instalacioacuten del sistema operativo) Se disentildea la estructura de la ldquoTablardquo de la base de datos para el catalogo de la biblioteca del CIDETEC Una vez preparada se capturan o vaciacutean en ella la informacioacuten que formaran los registros correspondientes de cada

110

publicacioacuten La obtencioacuten de la base de datos MySQL se encuentra disponible en la red

4- Se programa el sistema de consulta bibliotecario con el lenguaje de

programacioacuten Gambas eacuteste se obtiene para su instalacioacuten desde los repositorios del sistema operativo de ubuntu que se encuentra disponible en la red La programacioacuten del sistema se puede realizar ya sea en el mismo servidor o en otro equipo

5- Cuando el sistema de consulta este listo se instala en el servidor y se

configura su ubicacioacuten para establecer la conexioacuten con el equipo cliente

6- Se prepara el equipo cliente para arrancar desde la opcioacuten de red

esto se hace dentro del aacuterea de configuracioacuten del sistema oacute ldquosetuprdquo del equipo en la seccioacuten de secuencia de arranque o ldquobootrdquo

7- Se procede a configurar una pequentildea red estrella mediante un

dispositivo switch y cableado UTP categoriacutea 5 se conectan los equipos de su puerto de red ethernet al switch

8- Para finalizar se realizan las pruebas de conexioacuten de arranque y

funcionamiento del sistema de consulta bibliotecario 431 Instalacioacuten del sistema Operativo Primero se descargar el CD de instalacioacuten de Ubuntu el Desktop CD El archivo descargado seraacute una imagen ISO que debe grabar en un disco para proceder con la instalacioacuten Es necesario arrancar la computadora desde el CD para ello se reinicia su equipo con el disco grabado en el lector Al arrancar apareceraacute una pantalla de bienvenida en ingleacutes Para proceder en espantildeol (u otro idioma) soacutelo hay que pulsar la tecla F2 y seleccionarlo de la lista Despueacutes de unos minutos dependiendo del equipo el escritorio graacutefico de Ubuntu se habraacute cargado en la memoria RAM y apareceraacute en su pantalla Puede explorar los menuacutes o probar las aplicaciones para ver una pequentildea muestra de lo que Ubuntu puede hacer sin todaviacutea tener nada instalado en su sistema Tenga en cuenta que una vez instalado es mucho maacutes raacutepido que al ejecutarlo de forma virtual Para iniciar la instalacioacuten debe hacer doble clic con el ratoacuten en el icono en forma de disco que dice INSTALAR

111

bull El primer paso es elegir el idioma Si en la pantalla de bienvenida se eligioacute el espantildeol se pulsa adelante (Siguiente oacute Forward) en otro caso se selecciona ldquoEspantildeolrdquo en la lista y continuacutee

bull El siguiente es elegir la zona horaria Al pulsar sobre la zona para acercar el mapa y despueacutes sobre la ciudad concreta representativa del huso horario

bull El siguiente paso es elegir el tipo de teclado Deberaacute estar ya seleccionado (teclado rdquospainrdquo) Para cerciorarse de que esto es asiacute se escribe en la caja de texto que hay en la parte inferior al pulsar algunas teclas especiacuteficas del espantildeol como la lsquontildersquo y algunos siacutembolos habituales como el de moneda

bull En el siguiente paso la instalacioacuten preguntaraacute datos como nombre real y el nombre o apodo de usuario Por ejemplo el nombre real podriacutea ser laquoJesuacutes Loacutepezraquo y el nombre de usuario ldquoflopezrdquo A continuacioacuten se escoge una contrasentildea y el nombre de la computadora

El siguiente paso es el maacutes delicado se trata de indicar doacutende se debe instalar Ubuntu Se escoge la opcioacuten correcta o se podriacutea formatear una particioacuten no deseada si es que se comparte el disco duro con otros sistemas operativos Existen tres opciones

1 Formatear todo el disco duro Se elije eacutesta si se desea borrarlo todo y usar el disco duro por defecto como uacutenico para Ubuntu Es la opcioacuten maacutes faacutecil y menos problemaacutetica

2 Espacio libre contiguo Ubuntu usaraacute una parte de espacio libre del disco duro para instalarse Eacutesta es la opcioacuten maacutes recomendable si se desea conservar el antiguo sistema operativo o alguna particioacuten con datos Es una opcioacuten muy habitual para aqueacutellos que desean seguir tambieacuten con un primer o segundo sistema operativo como Windows o Mac OS

3 Particionamiento manual Con esta opcioacuten se podraacute determinar coacutemo seraacuten las particiones de forma maacutes especiacutefica Eacutesta no es la mejor opcioacuten si nunca se ha hecho una particioacuten o se ha instalado Linux antes

4 En la pantalla siguiente el instalador mostraraacute los datos para ser revisados Hay que asegurarse de que todo estaacute en orden y pulsar laquoSiguienteraquo para comenzar a copiar los archivos de Ubuntu al disco duro

Si todo se instaloacute correctamente al final la instalacioacuten preguntaraacute si se desea reiniciar (sin el disco) o continuar usando la sesioacuten virtual

112

432 Configuracioacuten del servidor con los primeros cuatro servicios

Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes

bull dhcp3-server bull nfs-kernel-server bull tftpd-hpa bull llstp

bull

4321 Instalacioacuten de servidor dhcp

Uno de los primeros servicios a instalar el servicio dhcp3-server el cual seraacute el encargado de atender las solicitudes del cliente cuando solicite una direccioacuten de red IP esta se asignaraacute de forma dinaacutemica

Para su instalacioacuten se necesita abrir una sesioacuten desde la ldquoconsola Terminalrdquo este comando se encuentra ubicado en el menuacute de ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo del submenuacute que se despliega se selecciona Terminal En la ventana que se abre se escribe la instruccioacuten sudo apt-get install dhcp3-server como esta instruccioacuten requiere permisos del administrador principal (root) solicitaraacute que se introduzca la contrasentildea de este Es entonces que comienza la instalacioacuten el proceso es raacutepido Para asegurar que el servicio se ejecute al inicio este se activa con el comando sudo update-rcd dhcp3-server defaults al intentar iniciar se apareceraacute un mensaje de failed esto es por que aun no se ha creado el archivo de configuracioacuten por lo que se hace un respaldo del archivo original que serviraacute posteriormente para consultar las condiciones originales Se escribe la instruccioacuten siguiente sudo cp etcdhcp3dhcpdconf etcdhcp3dhcpdconf-backup y se empieza con un archivo vaciacuteo de configuracioacuten ejecutando el siguiente comando

113

sudo rm -f etcdhcp3dhcpdconf ampamp sudo gedit etcdhcp3dhcpdconf Al editar el archivo etcdhcp3dhcpdconf los paraacutemetros iniciales se modifican en el coacutedigo siguiente se sentildealan con asteriscos () cuales son los paraacutemetros que se requieren cambiar con los paraacutemetros de la red LAN bajo la cual se esta instando este servicio Esto es valido cuando se desee brindar el servicio de salida a Internet a los equipos cliente ddns-update-style interim ignore client-updates allow booting allow bootp subnet 19216801 netmask 2552552550 next-server 1921680254 filename pxelinux0 option routers 1921680254 option subnet-mask 2552552550 option domain-name examplecom option domain-name-servers 1921680254 option time-offset -18000 option ntp-servers poolntporg range dynamic-bootp 192168050 192168099 FIN DE ARCHIVO Una vez configurado los datos de red se guarda el archivo y se puede ejecutar sudo etcinitddhcp3-server restart

[17]

4322 Instalacioacuten de servidor tftp

El servicio tftp-hpa es el encargado de preparar al servidor para permitir descargar hacia el cliente una copia (imagen) del sistema operativo para que este pueda arrancar mediante su NIC tarjeta de red

Se instala desde la consola Terminal el paquete tftpd-hpa sudo apt-get install tftpd-hpa

114

para asegurar que este servicio se ejecute al momento del arranque se debe ejecutar sudo update-rcd tftpd-hpa defaults y se habilita el servicio editando el archivo etcdefaulttftpd-hpa para esto se ejecuta sudo gedit etcdefaulttftpd-hpa y se modifica la linea que dice RUN_DAEMON=no por RUN_DAEMON=yes se guardamos el archivo y se ejecuta sudo etcinitdtftpd-hpa restart para terminar con la instalacioacuten se comprueba que el servidor tftp esta recibiendo datos ejecutando el comando sudo netstat -atunp | grep tftp [17]

4323 Instalando nfs-kernel-server Mediante el servicio nfs se prepara al servidor para la administracioacuten de archivos Se instalaraacute el paquete con la siguiente instruccioacuten sudo apt-get install nfs-kernel-server nfs-common portmap2 El equipo indicaraacute su secuencia de instalacioacuten el coacutedigo de a continuacioacuten es el coacutedigo real que resultoacute durante el proceso de instalacioacuten $ sudo apt-get install nfs-kernel-server nfs-common portmap Reading package lists Done Building dependency tree Reading state information Done The following extra packages will be installed libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 The following NEW packages will be installed

115

libevent1 libgssapi2 libnfsidmap2 librpcsecgss3 nfs-common nfs-kernel-server portmap 0 upgraded 7 newly installed 0 to remove and 0 not upgraded Need to get 480kB of archives After unpacking 1491kB of additional disk space will be used Do you want to continue [Yn] y Get1 httpusarchiveubuntucom gutsymain libevent1 13b-0 [461kB] Get2 httpusarchiveubuntucom gutsymain libgssapi2 011-1 [214kB] Get3 httpusarchiveubuntucom gutsymain libnfsidmap2 019-0 [231kB] Get4 httpusarchiveubuntucom gutsymain librpcsecgss3 014-2ubuntu4 [320kB] Get5 httpusarchiveubuntucom gutsymain portmap 60-1ubuntu1 [331kB] Get6 httpusarchiveubuntucom gutsymain nfs-common 1111~git-20070709-3ubuntu1 [176kB] Get7 httpusarchiveubuntucom gutsymain nfs-kernel-server 1111~git-20070709-3ubuntu1 [148kB] Fetched 480kB in 1s (305kBs) Preconfiguring packages Selecting previously deselected package libevent1 (Reading database 99733 files and directories currently installed) Unpacking libevent1 (from libevent1_13b-0_i386deb) Selecting previously deselected package libgssapi2 Unpacking libgssapi2 (from libgssapi2_011-1_i386deb) Selecting previously deselected package libnfsidmap2 Unpacking libnfsidmap2 (from libnfsidmap2_019-0_i386deb) Selecting previously deselected package librpcsecgss3 Unpacking librpcsecgss3 (from librpcsecgss3_014-2ubuntu4_i386deb) Selecting previously deselected package portmap Unpacking portmap (from portmap_60-1ubuntu1_i386deb) Selecting previously deselected package nfs-common Unpacking nfs-common (from nfs-common_13a111~git-20070709-3ubuntu1_i386deb) Selecting previously deselected package nfs-kernel-server Unpacking nfs-kernel-server (from nfs-kernel-server_13a111~git-20070709-3ubuntu1_i386deb) Setting up libevent1 (13b-0) Setting up libgssapi2 (011-1) Setting up libnfsidmap2 (019-0) Setting up librpcsecgss3 (014-2ubuntu4) Setting up portmap (60-1ubuntu1) Starting portmap daemon [ OK ] Setting up nfs-common (1111~git-20070709-3ubuntu1) Creating config file etcidmapdconf with new version

116

Creating config file etcdefaultnfs-common with new version Adding system user `statd (UID 111) Adding new user `statd (UID 111) with group `nogroup Not creating home directory `varlibnfs Starting NFS common utilities [ OK ] Setting up nfs-kernel-server (1111~git-20070709-3ubuntu1) Creating config file etcexports with new version Creating config file etcdefaultnfs-kernel-server with new version Starting NFS common utilities [ OK ] Exporting directories for NFS kernel daemon [ OK ] Starting NFS kernel daemon [ OK ] Processing triggers for libc6 ldconfig deferred processing now taking place El servicio ha quedado instalado

[17]

4323 Instalando LSTP Linux Terminal Server Project (LTSP) es un paquete para Linux que permite conectar muchas computadoras a un Servidor Linux Las aplicaciones comuacutenmente corren en el servidor y transmiten la salida en el dispositivo de video del cliente Para instalar LSTP y el administrador de clientes ligeros Thin CLient Manager sobre ubuntu se escriben desde la Terminal las siguientes instrucciones

sudo apt-get install ltsp-server-standalone openssh-server thin-client-manager-gnome El tamantildeo de las aplicaciones es de 100MB y la descarga de estos servicios tardaraacute aproximadamente 40 minutos Una vez que la descarga y la instalacioacuten ha concluido se escribe en la consola Terminal la siguiente instruccioacuten sudo ltsp-build-client La instruccioacuten anterior se encargaraacute de construir el ambiente para el arranque del sistema cliente

117

Se edita el archivo etcltspdhcpdconf para configurar los valores del servidor DHCP En la Terminal se escribe gksudo gedit etcltspdhcpdconf Se cambian los valores de los servidores de dominio el rango de direcciones IP que se les asignaraacuten a los clientes y la puerta de enlace esto es solo si se desea dar servicio a los clientes de salida a intenet El contenido del archivo a cambiar es el siguiente INICIO DEL ARCHIVO Default LTSP dhcpdconf config file authoritative subnet 19216800 netmask 2552552550 Valores a modificar range 192168020 1921680250 option domain-name examplecom option domain-name-servers 19216801 option broadcast-address 1921680255 option routers 19216801 next-server 1921680254 get-lease-hostnames true option subnet-mask 2552552550 option root-path optltspi386 if substring( option vendor-class-identifier 0 9 ) = PXEClient filename ltspi386pxelinux0 else filename ltspi386nbiimg ESTE FIN DE ARCHIVO Una vez concluido

118

Se reinicia el servicio mediante la instruccioacuten sudo etcinitddhcp3-server restart Y se actualiza el servicio ldquoSSH Serverrdquo para sistemas de administracioacuten cliente-servidor de forma segura en los datos a transmitir sudo ltsp-update-sshkeys Despueacutes de esto ya se podraacute arrancar la primera terminal [16] Configuracioacuten para los equipos cliente Se modifica el archivo optltspi386etcltsconf que contiene la lista de las terminals X11 y las de las opciones de configuracioacuten LTSP Distribucioacuten del teclado idioma color video direcciones fijas de IP perifericos etc gksudo gedit optltspi386etcltsconf [Default] LTSP server IP address SERVER = server SERVER = 1030220 Network syslog SYSLOG_HOST = server X11 driver eg auto vesa i810 XSERVER = auto X_COLOR_DEPTH = X_COLOR_DEPTH = 16 XF86CONFIG_FILE = Keyboard configuration XKBLAYOUT = us XKMODEL = pc105 XKBRULES = xorg XKBOPTIONS = lv3ralt_switch XKBVARIANT = CONSOLE_KEYMAP = Mouse configuration

119

X_MOUSE_DEVICE = devinputmice X_MOUSE_PROTOCOL = auto X_MOUSE_EMULATE3BTN = True X11 font server USE_XFS = False XFS_SERVER = server SSH compression between LTSP client and server NETWORK_COMPRESSION = False Network swap device for clients lt 48 MB system memory NBD_SWAP = SWAP_SERVER = server NBD_PORT = 9572 Local printers PRINTER_0_DEVICE = Sound configuration SOUND = False SOUND_DAEMON = esd Terminal sessions SCREEN_07 = ldm Linux modules MODULE_01 = Custom startup scripts RCFILE_01 = LDM_REMOTECMD = Una vez terminado esto los equipos clientes estaacuten preparados para arrancar En el servicio l administrador de clientes ligeros Thin CLient Manager se abre y se recurre para monitorear las conexiones de los clientes En el servidor se establecen las carpetas que se compartiraacuten para brindar el servicio de consulta bibliotecario

120

434 Instalacioacuten de MySQL y disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Las distribuciones MySQL para UNIXLINUX suelen estar disponibles en tres formatos distintos formato binario formato RPM y formato fuente Suelen instalarse las dos primeras porque automaacuteticamente asignan los valores por defecto adecuados ya implementados en la distribucioacuten para la plantilla de instalacioacuten y en la configuracioacuten con lo que el usuario no tendraacute problemas en elegir unas opciones u otras Sencillamente debe seguir los pasos indicados en las pantallas de instalacioacuten y aceptar los valores predeterminados Las distribuciones fuentes permiten mayor control sobre los paraacutemetros de la configuracioacuten pero son maacutes difiacuteciles de instalar Cualquier distribucioacuten de MySQL suele contener el servidor mysql los programas de cliente adecuados como mysql y mysqladmin la documentacioacuten una base de datos de referencia y soporte de lenguaje Para instalar MySQL en el servidor de LINUX deberaacute crear una cuenta para el usuario MySQL y el grupo como cualquier usuario del sistema que permita ejecutar en el servidor Seraacute necesario obtener y desempaquetar cualquier distribucioacuten que se quiera instalar Posteriormente se ejecutaraacute el guioacuten mysql_install_db para iniciar el directorio de datos y las tablas de transferencia Este guioacuten se ejecutaraacute soacutelo la primera vez que se efectuacutee la instalacioacuten Por uacuteltimo se iniciaraacute el servidor La ejecucioacuten del servidor MySQL puede realizarse como cualquier usuario LINUX del sistema pero no debe utilizarse el usuario root por cuestiones de seguridad se puede crear una cuenta de usuario para la administracioacuten de MySQL y para la ejecucioacuten del servidor disponiendo de privilegios completos en el directorio de datos para tareas de mantenimiento y la resolucioacuten de problemas Instalacioacuten de Mysql Para el propoacutesito de este trabajo se requieren instalar cuatro paquetes para que la esta base de datos funcione adecuadamente los paquetes a instalar son cuatro

o Mysql-server o Mysql-admin o Mysql-client o Mysql-doc-50

121

Los anteriores paquetes no estaacuten dentro del sistema operativo pero se encuentran disponibles en la red y fueron descargados de acuerdo al procedimiento siguiente Nota Se debe asegurar primero que se cuenta con una conexioacuten a Internet funcionando 1- Se selecciona del menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacutenrdquo el comando ldquoGestor de paquetes Synapticrdquo en el cuadro que se abre se escoge del menuacute el icono ldquoBuscarrdquo al oprimirse se despliega un cuadro de diaacutelogo en el se escribe el nombre del paquete a buscar en el ejemplo de la Fig 43 se escribioacute ldquomysql-serverrdquo y comenzaraacute la buacutesqueda al oprimir el botoacuten Buscar

Fig 43 Solicitud de Buacutesqueda de la aplicacioacuten mysql-server 2- Al terminar la buacutesqueda manda un aviso en el mismo cuadro con los nombres de archivos relativos a la buacutesqueda si es que esta fue encontrada

122

de no ser asiacute mandaraacute entonces un aviso diciendo que ldquono se encontroacute el archivordquo Si los archivos ya se encuentran instalados en el sistema al lado izquierdo del nombre de cada archivo se encuentra una casilla que estaraacute rellena de alguacuten color por ejemplo verderdquo de no ser asiacute dicha casilla estaraacute vaciacutea 3- Para indicarle que se desea instalar la aplicacioacuten y sus componentes basta con posicionar el cursor del ldquoratoacutenrdquo sobre cada una de las casillas de los archivos deseados y mediante la opresioacuten del botoacuten derecho del ldquoratoacutenrdquo se abriraacute el menuacute contextual y se escoge el comando ldquomarcar para instalarrdquo se notaraacute entonces que las casillas se encuentran rellenas con una ldquoflecha internardquo y finalmente del menuacute superior del gestor de paquetes synaptic se escoge el icono ldquoAplicarrdquo ilustrado con una ldquopalomitardquo Fig 44

Fig 44 Marcar ldquocasillasrdquo para instalacioacuten de aplicaciones Despueacutes apareceraacute la graacutefica de descarga de archivos Fig 45

123

Fig 45 Graacutefica de descarga de archivos 4- Los tres pasos anteriores se repiten con cada uno de los cuatro paquetes a instalar Cuando la descarga de todos los paquetes ha concluido se procede a realizar la instalacioacuten desde la consola Terminal de Ubuntu 5- Se escoge del menuacute ldquoSistemardquo rdquoAdministracioacutenrdquo el comando ldquoTerminalrdquo en la ventana que se abre se escribe la siguiente instruccioacuten despueacutes del siacutembolo del sistema sudo apt-get install mysql-server mysql-client mysql-admin mysql-doc-50

Este comando instalaraacute el servidor y el cliente la documentacioacuten y una herramienta de administracioacuten

En alguacuten momento de la instalacioacuten se pediraacute una contrasentildea que se utilizaraacute despueacutes para poder establecer la conexioacuten a la base de datos Es importante no perder esta de lo contrario no se podraacute acceder a la base de datos

Cuando finalice el proceso de instalacioacuten ya se puede iniciar una sesioacuten con la Base de Datos MySQL escribiendo el siguiente comando en la Terminal de la consola

124

bull mysql -u root -p

Tras introducir la contrasentildea que se introdujo anteriormente ya se puede trabajar con MySQL en la terminal

Si se prefiere trabajar con el ambiente graacutefico se selecciona en el menuacute AplicacionesProgramacioacuten y se escoge MySQL Query Browser Para conectarse con el servidor MySQL tan soacutelo se tiene que escribir los siguientes paraacutemetros ldquolocalhostrdquo en ldquoServer Hostnamerdquo (Nombre del servidor anfitrioacuten) ldquorootrdquo en ldquouser namerdquo como nombre de usuario y la contrasentildea (password) que se escribioacute durante la instalacioacuten Fig 46

Fig 46 Ambiente graacutefico de MySQL Query Browser

Una vez que se contoacute con la herramienta para nuestro trabajo se procedioacute a planear la estructura de la base para el catalogo de consulta de la biblioteca del CIDETEC La informacioacuten se obtuvo del control interno con el que se maneja actualmente la Biblioteca por lo que los nombres de los campos y la informacioacuten de los registros son reales Actualmente la biblioteca cuenta con aproximadamente 3411 registros Los campos que se manejaron para la estructura de la base datos son 13 y se muestran en la tabla siguiente Fig 47

125

Nombre del campo

Tipo de datos Tamantildeo en caracteres

Descripcioacuten

Nuacutemero Integer Entero Sin limite Este campo funciona como clave primaria

Titulo Text Texto 60 Titulo de la obra

Autor Text Texto 60 Nombre(s) del autor de la obra

Editorial Text Texto 20 Nombre de la editorial

Antildeo Text Texto 10 Antildeo de la publicacioacuten

Edicioacuten Text Texto 10 Edicioacuten de la obra

Cantidad Integer Entero Sin limite Nuacutemero de ejemplares en la biblioteca

Clave Integer Entero Sin limite Clave de identificacioacuten

Alta Text Texto 10 Antildeo en que se capturoacute

ISBN Text Texto 15 ISBN Identificacioacuten uacutenica de la publicacioacuten

ISBN2 Text Texto 15 ISBN Identificacioacuten secundaria

Costo Integer Entero sin limite Precio del ejemplar

Total Integer Entero sin limite Costo Total

Fig 47 Tabla de campos que componen la base de datos

El manejo del gestor se puede hacer de tres formas una es usando los comandos de este directamente desde la Terminal de ubuntu tambieacuten se puede utilizar la interfaz graacutefica MySQL Browser oacute bien se puede utilizar la aplicacioacuten de Gestor de bases de datos integrada en el lenguaje de programacioacuten de Gambas que se basa totalmente en Mysql para el desarrollo de este trabajo se utilizoacute esta uacuteltima pero las tres funcionan perfectamente La explicacioacuten de este apartado se explicaraacute en el siguiente punto despueacutes de que la instalacioacuten de Gambas se haya realizado [15] 435 Disentildeo de la estructura de la base de datos para el sistema de consulta bibliotecario Gambas es un lenguaje de programacioacuten visual con software libre y su obtencioacuten se hace descargaacutendolo de los repositorios de gambas disponibles en la red

126

Instalacioacuten de Gambas Para comenzar la descarga se tienen que realizar algunos ajustes previos para que la descarga se haga maacutes faacutecil Se acude primero al Menuacute de Ubuntu ldquoAplicacionesrdquo y se selecciona el comando ldquoAntildeadir y Quitarrdquo De la pantalla de la lista del tipo de aplicaciones se escoge ldquoProgrammingrdquo debido a que la ldquogambas pertenece a este rubro Se oprime el botoacuten ldquopreferenciasrdquo ubicado en la parte inferior de la pantalla del lado izquierdo Fig 48 A continuacioacuten se despliega una ventana llamada ldquoOrigen del softwarerdquo en ella se observa que la primera pestantildea ldquosoftware ubunturdquo en el menuacute ldquoDescargable de Internetrdquo las casillas de la lista de opciones de software se encuentran sin seleccionar A excepcioacuten de la de ldquoInstalable desde CD-ROM DVDrdquo Fig48

Fig 48 Pantalla de ldquoAntildeadir y Quitarrdquo aplicaciones en Ubuntu Ahora se procede a marcar todas las casillas de la pantalla de la Fig 48 y se desmarca la de Instalable desde Instalable desde CD-ROMDVD Fig 49

127

Fig 49 Marcacioacuten de opciones de software instalable desde Internet Ahora para la descarga del programa Gambas se realiza a traveacutes del ldquoGestor de paquetes Synapticrdquo del sistema operativo Ver Fig 410

Fig 410 Pantalla del Gestor de paquetes Synaptic que se encuentra

en el menuacute de Ubuntu ldquoSistemardquo ldquoAdministracioacuten

128

Del menuacute del ldquoGestor de Paquetes Synapticrdquo se oprime el icono ldquoBuscarrdquo ilustrado con una ldquohoja y lupardquo Ver fig 410 Aparece una pantalla en el cuadro de introduccioacuten de texto ldquoBuscarrdquo se escribe ldquogambas2rdquo y se oprime el botoacuten de ldquoBuscarrdquo Fig 411

Fig 411 Recuadro de Buacutesqueda de nombres de aplicaciones

Se despliega un listado de los componentes necesarios para su instalacioacuten que cuentan con una casilla pequentildea sin seleccionar o vaciacutea que nos indica que auacuten no se encuentran instalados se remarcan cada uno de los componentes que se desean instalar y se oprime el botoacuten del menuacute ldquorecargarrdquo Fig 412

Fig 412 Pantalla con la lista de componentes de aplicacioacuten Gambas disponibles para ser descargados e instalados

129

eacutel sistema entonces empieza a descargarlos de los repositorios aparece entonces un cuadro con una barra de progreso de la descarga par visualizar su avance Fig 413

Fig 413 Descarga de archivos de Gambas Una vez completada la descarga se oprime del menuacute el botoacuten ldquoAplicarrdquo ilustrado con una palomilla en la pantalla del menuacute de ldquoGestor de paquetes Synapticrdquo Si acaso auacuten no se haya instalado se puede entrar a la sesioacuten de Terminal y escribir sudo apt-get install gambas2 Y la secuencia de instalacioacuten comenzaraacute y desplegaraacute el coacutedigo de los avances de instalacioacuten cuando finalice lo indicaraacute mediante un ldquodonerdquo Para verificar que la instalacioacuten fue exitosa se acude al menuacute ldquoAplicacionesrdquo y se selecciona ldquoProgramacioacutenrdquo de su menuacute se escoge ldquoGambas2rdquo en necesario sentildealar que en Ubuntu 710 la uacuteltima versioacuten que acepta para instalar es la Gambas versioacuten 1949 Se Despliega entonces la ventana de bienvenida de Gambas Fig 414

130

Fig 414 Pantalla de bienvenida de Gambas Entorno de Trabajo de Gambas fig 415

Fig 415 Ventana Principal de trabajo de Gambas

131

Disentildeo de la base de datos y del sistema de consulta El sistema consta de dos partes significativas e igualmente importantes se basa de dos ventanas llamados ldquoformulariosrdquo el primero funciona como anfitrioacuten ya que le sirve al usuario como formato de solicitud de informacioacuten la labor del segundo formulario es fundamental en eacutel se establece la rutina de conexioacuten a la base de datos y muestra los resultados de la peticioacuten solicitada en el formulario anterior El primer paso de la implementacioacuten fue elaborar la base de datos en Mysql Bases de datos y gambas Gambas tiene estructurado el acceso a bases de datos mediante drivers Estos son moacutedulos de coacutedigo que fueron escritos por diversos programadores especiacuteficamente para comunicarse con una base de datos determinada lo que permite acceder a distintas bases utilizando el mismo coacutedigo asiacute que basta con especificar el tipo de datos a utilizar y el resto del coacutedigo funcionaraacute posiblemente sin modificaciones con independencia de la base de datos utilizada Gambas puede manejar varios tipos de bases de datos Los tres drivers existentes hasta el momento de escribir este documento son Sqlite MySQL y Postgres Ademaacutes cuenta con un driver ODBC el cual es un estaacutendar para comunicar aplicaciones con bases de datos Es apropiado mencionar que los drivers anteriores estaacuten optimizados y ofrecen una mayor velocidad de transferencia de datos Soacutelo cuando no se disponga de ninguno de ellos es entonces cuando se usa ODBC

132

Fig 4 16 Activacioacuten del componente gbdb para permitir el acceso a bases de datos

La estructura de gambas para bases de datos cualquier aplicacioacuten que use esta caracteriacutestica necesitara del componente gbdb como dependencia Fig 416 Los drivers para cada sistema de bases de datos son tambieacuten componentes pero el programador no ha de marcarlos como dependencias Una vez que se indique a que sistema se conectaraacute el interprete de gambas trataraacute de cargar el driver especiacutefico Estos componentes especiales son gbdbsqlite sqlite versioacuten 2 gbdbsqlite3 sqlite version 3 gbdbmysql MySQL gbdbpostgres PostgreSQL gbdbodbc geneacuterico ODBC En este punto en donde continuaremos para la creacioacuten de la base datos en Mysql pero se utilizoacute el gestor de base de datos integrado en gambas el cual es un entorno graacutefico de desarrollo que permite administrar de forma sencilla muacuteltiples bases de datos [13]

133

4351 Creacioacuten de la base de datos Del menuacute herramientas se selecciona gestor de bases de datos solicitaraacute una contrasentildea esta debe ser de al menos 8 caracteres y se solicitaraacute cada vez que se arranque el programa Fig 417

Fig 417 Solicitud de contrasentildea para la base de MySQL Despueacutes de este paso aparece el gestor el cual se encuentra vacioacute al no existir ninguna conexioacuten auacuten Se pulsa sobre el menuacute Servidor y se elige la opcioacuten de nuevo servidor en el cuadro de dialogo que aparece se introducen los datos necesarios para establecer la conexioacuten El primer dato TIPO se refiere al driver que emplearemos sqlite mysql postgres u ODBC HOST es el nombre del equipo o direccioacuten IP donde reside el servidor de base de datos Los siguientes datos son el nombre de usuario y contrasentildea para acceder al sistema de base de datos que determinan los distintos privilegios del usuario Una vez incluidos los datos se pulsa OK y el nuevo servidor quedaraacute reflejado en el aacuterbol de la izquierda del gestor Para establecer la conexioacuten se hace clic sobre el servidor y despueacutes se hace clic con el botoacuten derecho para desplegar el menuacute contextual de

134

opciones y se escoge Crear Base preguntaraacute el nombre de la base en este caso se le llamoacute ldquobasesrdquo se pulsa par terminar sobre el botoacuten OK Fig 418 De aacuterbol de la izquierda pulsamos sobre el nombre ldquobasesrdquo asiacute que ya disponemos de una base vaciacutea donde se han de crear las distintas tablas con la informacioacuten [13]

Fig 418 Crear Base Esta se llamoacute Bases 4352 Creacioacuten de la tabla Para crear la tabla se hace doble clic para abrir la base y pulsamos el botoacuten derecho para obtener su menuacute contextual Se selecciona ldquoCrear Tablardquo se pregunta por el nombre de la tabla a la cual se le llamo ldquodatosrdquo y el Tipo que es InnoDB Fig 419 Una vez que pulsemos sobre el botoacuten OK el gestor aparece en el lado derecho mostrando la estructura actual de la tabla ldquodatosrdquo que esta vaciacutea para que se antildeada la informacioacuten a los campos que aparecen

Fig 419 Asignar nombre a la ldquoTablardquo que se llamaraacute ldquodatosrdquo Para ello se manejaraacute primero la pestantildea ldquocamposrdquo con la que se crea una tabla para almacenar los datos de los libros La estructura de los campos es la que se planeo en el punto anterior Tambieacuten se establece la clave principal que es uacutenica y sirve para identificar cada registro almacenado La clave uacutenica estaraacute formada por varios campos o uno soacutelo En esta base se trata al campo ldquonuacutemerordquo

135

Para crear el primer campo se modifica el que el propio gestor ha creado como sugerencia indicando como Nombre Identificador y Tipo Integer entero se dejan los demaacutes columnas en blanco Para el resto de los campos se pulsa sobre el botoacuten con el icono ilustrado con una hoja de papel en blanco y que sirve para antildeadir un nuevo campo se continuacutea armando la estructura con los datos de la tabla La interfaz resultante fue la siguiente Fig 420

Fig420 Estructura de la tabla ldquodatosrdquo El dato longitud conviene ajustar el valor lo mas posible para no hacer crecer la base de datos demasiado ya que eso hariacutea que las buacutesquedas fueran mas lentas [13] 4353 Cargar la informacioacuten dentro de la tabla Una vez que se tuvo la estructura de la tabla lista se procedioacute a llenarla con la informacioacuten de los 3411 registros como la informacioacuten ya existe digitalmente se procedioacute a convertir esa informacioacuten a un formato de un archivo tipo texto (txt) en que los campos se delimitaran por tabuladores Al archivo se le llamo ldquolibroscidetectxtrdquo Este archivo puede ser modificado en cualquier editor o procesador de texto Para realizar el vaciado de la informacioacuten se ejecutoacute la siguiente instruccioacuten desde la consola de Terminal una vez que se ha iniciado la sesioacuten mysql gt LOAD DATA LOCAL INFILE ldquolibroscidetectxtrdquo INTO TABLE datos

136

La sentencia LOAD DATA nos permite especificar cuaacutel es el separdor de columnas y el separador de columnas (campos) predeterminado es el tabulador y el salto de liacutenea es el separador de registros que en este caso son suficientes para que la sentencia LOAD DATA lea correctamente el archivo ldquolibroscidetectxtrdquo

Fig 421 Presentacioacuten de la tabla que contiene los registros del acervo

bibliograacutefico del CIDETEC Se ingresa a la aplicacioacuten Mysql e iniciar sesioacuten desde la consola Terminal se utilizan las siguientes instrucciones Shellgt mysql ndashh localhost ndashu root ndashp Enter password Welcome to the MySQL monitor Commands end with or g Your MySQL connection id is 5563 to server version 32341 Type lsquohelprsquo or lsquohrsquo for help Type lsquocrsquo to clear the buffer Mysqlgt El siacutembolo de sistema anterior indica que se esta lista para recibir instrucciones [15]

137

436 Disentildeo de la Interfaz del Sistema de consulta bibliotecario A continuacioacuten se procedioacute al disentildeo de la interfaz que contiene la presentacioacuten del sistema de consulta El formulario inicial es el siguiente Fig422

Fig 422 Interfaz de presentacioacuten del sistema de consulta bibliotecario 4361 Creacioacuten de los formularios En el disentildeo del formulario anterior no se utilizaron todos los campos de la base de datos soacutelo se emplearon los mas representativos para una buacutesqueda de un usuario comuacuten como son titulo autor editorial ISBN y edicioacuten A la vez se incluyeron tres botones ldquoLimpiar todordquo que realiza una limpieza total del formulario ldquoAceptarrdquo este botoacuten activa el coacutedigo que realiza la buacutesqueda ldquoCancelarrdquo este botoacuten cierra la aplicacioacuten A la apertura de este formulario se establece la conexioacuten con la base de datos y este coacutedigo se adjunta en eacutel

138

4362 Conexioacuten a la base de datos El siguiente coacutedigo es una funcioacuten que sirve para conectar la base de datos dentro del coacutedigo del formulario se le llamaraacute ConectarBase Gambas class file Funcion para conectarse a la base de datos PRIVATE hConn AS Connection PRIVATE FUNCTION ConectarBase() AS Boolean IF hConn ltgt NULL THEN RETURN FALSE hConn = NEW Connection hConnHost = localhost hConnName = bases hConnType = mysql hConnLogin = root hConnPassword = contrasentildea TRY hConnOPEN() IF ERROR THEN hConn = NULL MessageError(Error al conectar con la base) RETURN TRUE END IF RETURN FALSE END Una nota importante a considerar para que este coacutedigo funcione dentro de los componentes de gambas se debe activar el gbdb que es el componente de objetos de conexioacuten a bases de datos Este punto que es baacutesico me representoacute restrasos Se define el objeto Connection hConn que seraacute accesible en todo el formulario y representa la conexioacuten a la base de datos Despueacutes se escribe una funcioacuten ConecarBase que devuelve FALSE si tiene eacutexito o TRUE si falloacute Este objeto verifica si existe ya una conexioacuten de ser asiacute se regresa indicando que ya hay una conexioacuten FALSE de esta forma se puede llamar a esta funcioacuten desde varios puntos del programa sin necesidad de verificar si existe o no la conexioacuten El objeto hConn que al inicio no esta conectado a ninguna base y a este se le proporciona la informacioacuten necesaria para establecer la conexioacuten se

139

rellena la propiedad Host que en el caso de una base de datos con servidor puede ser una direccioacuten IP despueacutes se indica el nombre de la bases de datos que en este caso se denominoacute ldquobasesrdquo despueacutes se iacutendica el tipo de base de datos al que se conectaraacute en este caso es del tipo MySql hecho esto se procedioacute a rellenar las propiedades de Login y de Password que previamente definimos en la creacioacuten de la base de datos para accesar al servidor Despueacutes se trata de abrir la conexioacuten si es que no es posible se advierte con un error que se capturoacute con la orden TRY Si el error se ha producido se hace nula de nuevo la conexioacuten fallida y se regresa con el valor de error que es TRUE En caso contrario de haber eacutexito se regresa el valor correspondiente FALSE Al coacutedigo anterior se le incluye la funcioacuten de cerrado de la conexioacuten a la base de datos Cerrar la conexion a la base de datos PRIVATE SUB CerrarConexion() IF hConn = NULL THEN RETURN hConnClose() hConn = NULL END Cuando se rellena el formulario bajo alguno de los criterios de consulta ya sea titulo autor editorial ISBN oacute edicioacuten o si se establece una consulta combinada de estos criterios se oprime el botoacuten Aceptar para comenzar la buacutesqueda a este botoacuten se le asocia el siguiente coacutedigo Algoritmo de buacutesqueda STATIC PUBLIC consulta AS String PUBLIC SUB Form_Open() acercaShow END PUBLIC SUB Boton_buscar() consulta = select from datos where IF TextBox1Text ltgt THEN consulta = consulta amp titulo like amp TextBox1Text amp and IF TextBox2Text ltgt THEN consulta = consulta amp autor like amp TextBox2Text amp and IF TextBox3Text ltgt THEN consulta = consulta amp editorial like amp TextBox3Text amp and IF TextBox4Text ltgt THEN consulta = consulta amp isbn like amp TextBox4Text amp and IF TextBox5Text ltgt THEN consulta = consulta amp edicion like amp TextBox5Text amp and

140

consulta = Mid(consulta 1 Len(consulta) - 3) globalconsulta = consulta PRINT consulta Form1Show END Al botoacuten de ldquolimpiar formulariordquo se le asocia el siguiente coacutedigo dentro del mismo formulario principal Botoacuten para limpiar formulario PUBLIC SUB Boton_Limpiar() TextBox1Text = TextBox2Text = TextBox3Text = TextBox4Text = TextBox5Text = END Al botoacuten de ldquoCancelarldquo se le asocia el siguiente coacutedigo el cual se encargaraacute de cerrar la aplicacioacuten PUBLIC SUB Boton_Cerrar() FMainClose END PUBLIC SUB Menu1_Click() acercaShow END

141

4363 Disentildeo del formulario que contendraacute los resultados de la consulta solicitada En el coacutedigo del botoacuten aceptar viene una instruccioacuten que conecta al formulario que contiene los resultados de la consulta Form1show END El formulario se muestra a continuacioacuten Fig 423

Fig 423 Pantalla que muestra los resultados de la buacutesqueda Al abrirse el formulario se despliega la informacioacuten en una tabla el siguiente coacutedigo permite dar formato a la presentacioacuten de la pantalla anterior PUBLIC SUB Form_Open() DIM hResul AS Result DIM Clave AS String TextBox1Text = globalconsulta

142

TablaClear() IF ConectarBase() THEN RETURN TablaColumnsCount = 6 TablaColumns[0]Text = Numero ID TablaColumns[1]Text = Titulo TablaColumns[2]Text = Autor TablaColumns[3]Text = Editorial TablaColumns[4]Text = ISBN TablaColumns[5]Text = Edicion hResul = hConnExec(textbox1Text) TablaClear() DO WHILE hResulAvailable Clave = hResul[numero] TablaAdd(Clave Clave) Tabla[Clave][1] = hResul[titulo] Tabla[Clave][2] = hResul[autor] Tabla[Clave][3] = hResul[editorial] Tabla[Clave][4] = hResul[isbn] Tabla[Clave][5] = hResul[edicion] hResulMoveNext() LOOP CerrarConexion() END PUBLIC SUB Button1_Click() MEClose FMainShow END Al abrirse el formulario se abriraacute la conexioacuten se leeraacuten los datos disponibles se representaraacuten en la tabla y se cerraraacute la conexioacuten El coacutedigo trata de abrir la conexioacuten y si fracasa sale de la funcioacuten Se definen seis columnas en control de tabla pone el titulo a los encabezados de columna y rellena los diferentes registros Para realizar esto primero se consultan los datos de la tabla empleando el meacutetodo Exec del objeto

143

hconn al cual pasamos como paraacutemetro la consulta SQL y devuelve un objeto de la clase Result que contienen cada uno de los registros de la consulta El objeto Result tiene un apuntador interno que en cada momento apunta a uno de los registros En el estado inicial apunta al primer registro si es que hay alguno Este objeto dispone de una serie de meacutetodos para mover el apuntador Cuando se situacutea en un registro Result permite obtener el dato correspondiente a un campo indicando el nombre del campo como si el objeto fuera un arreglo Si como resultado de un movimiento del apuntador si se sobrepasa el uacuteltimo registro o si se esta antes del primero la propiedad Disponible toma el valor False mientras que si se encuentra apuntando a un registro Disponible toma el valor de TUE de la misma forma si no hay registros resultantes de la consulta Disponible valdraacute False Con estos datos ya se puede realizar un bucle para rellenar los datos de la tabla Mientras la propiedad disponible sea Trae se toma como valor del campo ldquonumerordquo se antildeade una liacutenea en la tabla identificada por esa clave Se rellenan el resto de los campos con los valores del objeto hResult y se pasa al siguiente registro Despueacutes de salir del bucle se cierra la conexioacuten y sale de la funcioacuten [15] 437 Configuracioacuten del sistema en el servidor La interfaz que se desea obtener es la ldquoimagen de arranquerdquo descargada del servidor mediante TFTP que le permitiraacute al sistema poder visualizar la pantalla de bienvenida del sistema en la cual solicita que introduzca su nombre de usuario

Fig 424 Interfaz de bienvenida al entorno gnome del sistema operativo Linux UBUNTU 710

144

Una vez que se ha introducido el nombre de usuario el sistema comenzaraacute entonces a realizar la fase de autentificacioacuten para verificar que el usuario tenga el permiso de ingresar al sistema de consulta la informacioacuten ingresada es cotejada en la carpeta que almacena las claves y contrasentildeas ldquoetcpasswdrdquo Despueacutes de permitir el acceso al sistema inmediatamente se desplegaraacute el cuadro de diaacutelogo del sistema de consulta que le permite al usuario solicitar informacioacuten utilizando varios criterios de buacutesqueda ya sea de forma individual o combinada como titulo de la obra autor de la publicacioacuten editorial ISBN y edicioacuten

Fig 425 Formato de consulta de informacioacuten Los resultados obtenidos de la buacutesqueda realizada se desplegaraacuten en una nueva ventana con los registros coincidentes bajo el criterio solicitado En las figura 425 se pone como ejemplo que el usuario solicita informacioacuten sobre ldquoredesrdquo (informaacuteticas por supuesto) y en la figura 426 se muestra la tabla resultante con los registros que cuentan con tal informacioacuten

145

Fig 426 Tabla que despliega los registros coincidentes con la buacutesqueda solicitada La pantalla ademaacutes le permite al usuario poder regresar a la ventana de inicio para comenzar una nueva consulta 438 Configuracioacuten del equipo cliente para arrancar desde red Para que el sistema tenga incluida la funcioacuten de arranque por red debe contar con tarjeta de red integrada

Arranque mediante el ROM de arranque PXE

La computadora debe utilizar un BIOS compatible con BBS (BIOS Boot Specification) La BBS determina el modo en que el BIOS del sistema identifica los dispositivos de arranque de una computadora (por ejemplo unidad de CD-ROM disco duro o unidad de disco flexible) y permite al usuario seleccionar el orden de arranque de los dispositivos para continuar y de forma secuencial intentar arrancar desde cada dispositivo y en el orden indicado

146

Computadoras con BIOS compatible con BBS

Para activar una computadora con BIOS compatible con BBS para arrancar desde la red mediante ROM de arranque PXE es necesario

1 Habilitar el paraacutemetro ROM de arranque de la NIC seleccionando la opcioacuten de Enabled

2 En el BIOS de la computadora se define manualmente PXE como el primer dispositivo de arranque

3 Se reinicia el equipo

La utilidad PXE intentaraacute arrancar desde la red utilizando el protocolo predeterminado TCPIP DHCP

Si el arranque desde la red falla apareceraacute el mensaje siguiente

Network boot aborted press any key to continue

El BIOS intentaraacute el arranque desde el siguiente dispositivo indicado (por ejemplo el disco duro local)

439 Integracioacuten de la red estrella Se adaptoacute de manera de prueba la integracioacuten de una sala de consulta con cinco computadoras terminales PXE se conectaron a un switch de 8 puertos de 10100 Mbps mediante cable UTP de categoriacutea 5 a una distancia del switch y ellas de 1m 15m y 3m 4310Etapa de prueba Una vez que se logro la conexioacuten con el primer cliente habiendo instalado switch 10100 Mbps y el cableado UTP de categoriacutea 5 se prosiguioacute a la conexioacuten de las cinco terminales PXE las cuales respondieron de la manera en que se esperaba el tiempo de respuesta de los equipos es satisfactorio durante el arranque y a la asignacioacuten de direcciones IP En relacioacuten al funcionamiento del servidor una vez instalado el sistema de consulta responde con un tiempo de respuesta de aproximadamente de dos a tres segundos lo cual se considera oacuteptimo

147

Se realizaron pruebas de consulta simultanea para observar las fallas del servidor pero logro responder de forma favorable aunque quedoacute en consideracioacuten la conveniencia de instalar el sistema en un equipo servidor con mejores recursos de procesador y de memoria RAM para minimizar el trafico de solicitudes

148

CAPITULO 5

RESULTADOS Y CONCLUSIONES Es este uacuteltimo capiacutetulo se exponen los logros alcanzados durante la evolucioacuten del presente proyecto conforme a los objetivos que se propusieron en su inicio

o En relacioacuten al primer objetivo se acordoacute la configuracioacuten y puesta en marcha de un cliente PXE para su arranque mediante red respecto a este objetivo se cumplioacute con el propoacutesito los equipos que se eligieron para funcionar bajo este modo de arranque respondieron de forma satisfactoria y se logroacute establecer la conexioacuten con el servidor para su respuesta

o Para el segundo objetivo configuracioacuten y puesta en marcha de un

servidor dedicado se siguieron las instrucciones en su configuracioacuten consiguiendo habilitar los servicios ofrecidos Se han realizado con ellos pruebas individuales y en conjunto para probar la conexioacuten y el tiempo de respuesta a las solicitudes hechas desde los equipos cliente obteniendo resultados favorables permitiendo evaluar su estabilidad

o Respecto a los objetivos tercero y cuarto para la elaboracioacuten del

sistema de consulta bibliotecario y su configuracioacuten en el servidor se finalizoacute y se brinda el servicio que se planteoacute ofrece una interfaz funcional con un tiempo de respuesta oacuteptimo aproximadamente de tres segundos en promedio desde el servidor hacia el equipo cliente

o El quinto objetivo se comprometioacute a minimizar el costo por la

adaptacioacuten de este sistema este es un punto que quedo cubierto desde el inicio del trabajo ya que se utilizoacute un equipo como servidor de condiciones teacutecnicas regulares ya existente del CIDETEC y los equipos cliente fueron equipos en desuso tambieacuten CIDETEC por lo que la inversioacuten se concentroacute en la adquisicioacuten de un equipo ldquoswitchrdquo y el cableado UTP para la adecuacioacuten de la red estrella

Entre los beneficios esperados por la implementacioacuten de lo planteado en este trabajo se demostroacute el funcionamiento del protocolo PXE y se proboacute su eficacia directamente en una aplicacioacuten Al emplear la tecnologiacutea de arranque por red se notaron los siguientes beneficios

149

o Que al controlar el sistema mediante un servidor permite que el

mantenimiento informaacutetico sea maacutes sencillo y maacutes eficiente

o Que Los equipos que funcionan como clientes no requieren tanto hardware resultando equipos maacutes econoacutemicos y menos propensos a fallos de hardware

o Que la carga de trabajo de todo el presente sistema fue soportada

por la potencialidad de los protocolos remotos

o Que se retoma la forma de trabajo centralizado en particular resulta una forma atractiva de trabajar ya que disminuye de forma considerable los inconvenientes de los actuales sistemas como por ejemplo el rutinario mantenimiento individual de los equipos debido a virus o a la instalacioacuten de paquetes poco apropiados para ambientes de trabajo lo que conlleva a tener un mejor control haciendo cumplir las poliacuteticas para el uso correcto de los equipos de coacutemputo con lo que se minimizan vicios de los usuarios

En cuanto al ahorro de gastos

o Se ilustroacute como reutilizar equipo en obsolescencia repercutiendo en una prolongacioacuten de la vida uacutetil de los equipos hasta que fallen estos fiacutesicamente

o Al minimizar el trabajo conlleva a un ahorro de gastos por

mantenimiento y adquisicioacuten de equipo Puntos a considerar El emplear la anterior metodologiacutea para la configuracioacuten del servidor dedicado requiere de cierto grado de conocimientos y sobre todo de experiencia en el sistema operativo UNIXLINUX y su evolucioacuten La puesta en marcha de un servidor dedicado representoacute complicaciones en su preparacioacuten la serie de instrucciones empleadas para la adaptacioacuten de cada uno de servicios tuvieron que ser revisadas y modificadas durante las pruebas aplicadas para probar su funcionamiento hasta que el objetivo fue alcanzado Se requiere de un estudio mas profundo sobre los protocolos de red para ir mas allaacute de aplicarlos siguiendo su sintaxis se necesita comprender sus

150

conceptos y principios ya que en ellos se basan las ideas para el surgimiento de nuevas tecnologiacuteas El empleo de las herramientas de software para el desarrollo del presente trabajo manifestoacute como la aplicacioacuten de sistemas operativos que antes eran de uso exclusivo para la administracioacuten de los ldquograndes equipos de coacutemputordquo estaacuten ahora llegando a las computadoras personales del usuario comuacuten Se ilustra como hay un ldquorenacimientordquo de antiguas formas de trabajo al regresar al uso de sistemas centralizados pero beneficiados por los avances en coacutemputo actuales Se resolvioacute un problema aplicando la ingenieriacutea de software en lugar de recurrir a la inversioacuten de adquirir equipo nuevo

TRABAJOS A FUTURO

o Se propone que el sistema pueda ser consultado viacutea Internet permitieacutendole al usuario guardar las consultas realizadas en formato PDF

o Se desea mejorar la esteacutetica de la presentacioacuten de la interfaz del catalogo de consulta bibliograacutefica

151

APEacuteNDICE A

FORMAS DE CONEXIOacuteN REMOTA A continuacioacuten se describen cada una de las formas de conexioacuten remota Viacutea Telnet

bull Mediante el uso de este protocolo que tras introducir una clave de usuario (login) y contrasentildea (password) se accede a un servidor Este sistema resulta bastante complicado para el usuario comuacuten ya que requiere conocer ciertos comandos del sistema operativo UNIX del servidor En otras ocasiones se vale de una interfaz graacutefica para facilitar el acceso pero siempre y cuando le sea proporcionada la direccioacuten o nombre del servidor y por supuesto la clave y contrasentildea del usuario autorizado A continuacioacuten se proporciona una lista de sistemas de consulta de bibliotecas los cuales son adaptaciones del protocolo Telnet [1]

bull Telnet ALEPH Automated Library Expandable Program bull Telnet BLCMP sitio-gt libbrunelacuk bull Telnet Geac sitio -gt geacedacuk bull Telnet Libertas sitio -gt vaxalibicacuk bull Telnet Urica sitio-gt libsotonacuk bull Telnet VTLS sitio-gt tahatupces bull Telnet DRA Atlas sitio-gt alconacuedu

Uso del protocolo Z3950

bull La ANSIISO Z3950 define un medio normalizado para comunicar dos computadoras con el propoacutesito de recuperar informacioacuten La Z3950 facilita el uso de las bases de datos con grandes voluacutemenes de informacioacuten a traveacutes de la normalizacioacuten de procedimientos y caracteriacutestica de la buacutesqueda y recuperacioacuten de informacioacuten Especiacuteficamente la Z3950 permite la recuperacioacuten de informacioacuten en ambiente distribuido cliente-servidor donde una computadora opera como un cliente quien enviacutea una solicitud de buacutesqueda (es decir una consulta) a otra computadora que actuacutea como un servidor de informacioacuten Esta norma puede ser implementada en cualquier plataforma tambieacuten permite la implementacioacuten de una interfaz para accesar a muacuteltiples sistemas proporcionando a los usuarios finales un acceso casi transparente a los otros sistemas Los usuarios no necesitan aprender nuevos comandos o teacutecnicas de

152

buacutesquedas Los resultados de la buacutesqueda se presentan en el sistema local en el formato y estilo en que los usuarios estaacuten acostumbrados Pero la principal caracteriacutestica de este protocolo es que fue disentildeado precisamente para el servicio de consulta de acervos de bibliotecas de gran volumen ofreciendo al usuario una buacutesqueda eficiente y respuesta raacutepida de sus solicitudes Referencia [4]

Mediante un servidor WEB

bull Esta es quizaacute la forma de conexioacuten maacutes socorrida y maacutes empleada El servidor web es un programa que estaacute permanentemente escuchando las peticiones de conexioacuten de los clientes mediante el protocolo http El servidor funciona de la siguiente manera si encuentra en su sistema de archivos el documento HTML solicitado por el cliente lo enviacutea y cierra la conexioacuten en caso contrario enviacutea un coacutedigo de error que cierra la conexioacuten El servidor web tambieacuten se ocupa de controlar los aspectos de seguridad comprobando si el usuario tiene acceso a los documentos Muchos gestores de bases de datos ofrecen moacutedulos para publicar sus bases de datos en sitio web pero aunque el sistema efectivamente cumple esta funcioacuten el tiempo de respuesta es lento lo que ocasiona que el usuario al no recibir respuesta pronta prefiera cancelar la buacutesqueda se tiene que elegir muy bien la plataforma sobre la que se montaraacute el sitio web para disimular estos retardos en la respuesta [1]

Redes virtuales VPN

bull Las redes VPN (Virtual Private Network) Redes Privadas Virtuales son implementadas en empresas o instituciones las cuales requieren conectarse a los equipos de forma remota pero de manera exclusiva utilizan una teacutecnica de tuacutenel para transferir datos de forma segura a traveacutes de Internet a un servidor de acceso remoto en la red de la empresa El uso de VPN permite ahorrar dinero ya que utiliza Internet puacuteblica en lugar de realizar llamadas telefoacutenicas de larga distancia para conectarse de forma segura a la red privada La conexioacuten a traveacutes de Internet estaacute cifrada y es segura El servidor de acceso remoto fuerza los nuevos protocolos de cifrado y autenticacioacuten Los datos confidenciales no estaacuten al alcance del puacuteblico pero son accesibles de forma segura para los usuarios apropiados a traveacutes de una VPN Hay dos formas de crear una conexioacuten de VPN a traveacutes del proveedor de servicios de Internet (ISP) o conectaacutendose directamente a Internet

153

bull Si se conecta a traveacutes de un ISP el ISP realiza otra llamada al servidor de acceso remoto de la red privada para establecer el tuacutenel PPTP o L2TP Tras la autenticacioacuten puede obtener acceso a la red privada

bull Si ya estaacute conectado a Internet en una red de aacuterea local moacutedem de cable o liacutenea de suscriptor digital (DSL) puede crear un tuacutenel a traveacutes de Internet y conectarse directamente al servidor de acceso remoto Tras la autenticacioacuten puede obtener acceso a la red de la empresa [3]

Empleo de terminales X- Windows

bull Estas son terminales inteligentes que contienen una CPU tan potente como la de la computadora principal junto con Megabytes de memoria un teclado y ratoacuten Una Terminal X que ejecuta X- Windows system desarrollado en el MIT como parte del proyecto Athena una Terminal X es una computadora que ejecuta el software X y que interactuacutea con programas que se ejecutan en una computadora remota

bull El programa dentro de la Terminal X que obtiene entradas de teclado y ratoacuten y acepta comandos de una computadora remota que se denomina servidor X Este programa debe mantenerse al tanto de la ventana seleccionada actualmente para saber a cual cliente debe enviar las entradas que lleguen del teclado El servidor X se comunica a traveacutes de la red con clientes X que se ejecutan en un host remoto El servidor enviacutea a los clientes entradas del teclado y el ratoacuten y acepta comandos de despliegue de ellos

bull Podraacute parecer extrantildeo tener el servidor X dentro de la Terminal y los clientes en el host remoto pero la tarea del servidor X es exhibir bits asiacute que tiene sentido estar cerca del usuario Desde el punto de vista del programa se trata de un cliente que le dice al servidor que haga cosas como exhibir texto y figuras geomeacutetricas El servidor simplemente obedece al igual que todos los servidores

bull Vale la pena sentildealar que la administracioacuten de ventanas no forma

parte de X mismo Este disentildeo fue intencional ya que en vez de eso un proceso cliente X aparte llamado administrador de ventanas controla la creacioacuten eliminacioacuten y movimiento de ventanas en pantalla Este administra las ventanas enviando comandos al servidor X para indicarle que debe hacer El administrador de ventanas se ejecuta en la misma maacutequina que el cliente X pero en teoriacutea puede hacerlo en cualquier lado Este disentildeo modular que consta de varias capas y muacuteltiples programas hace que X sea muy

154

versaacutetil y flexible Funciona en varios sistemas operativos ofreciendo al usuario una interfaz estaacutendar potente abierto y flexible

bull El juego de bibliotecas que utiliza tambieacuten estandarizadas son

conocidas como XLib bull Las terminales X comenzaron a desarrollarse para uso profesional y

teacutecnico (Rango Medio) en actividades como la ingenieriacutea donde se necesitaban altas prestaciones en cuanto a resolucioacuten y colores La generalizacioacuten del uso de terminales X debido a su estandarizacioacuten ha llevado a sustituir muchas terminales incluso los terminales ASCII que corresponden a los de prestaciones maacutes bajas [2]

Empleando el protocolo XDMCP Administrador de Ventanas

bull XDMCP X Display Manager Control Protocol o Protocolo de Control de Administrador de la Pantalla X este es un protocolo utilizado en redes para establecer comunicacioacuten entre una computadora que funciona como servidor y que se encarga de ejecutar un sistema operativo que cuenta con un administrador de ventanas basado en el sistema X-Window y los demaacutes clientes que se conectaraacuten con el servidor con propoacutesitos interactivos

Sistemas Diskless

bull Se acondicionan equipos que no requieren discos duros para su funcionamiento solo se requiere que cuenten con ciertos recursos teacutecnicos de potencia ldquomedianardquo tales como procesador tarjeta de red y memoria RAM para que estos puedan conectarse a un servidor quien seraacute el que les proporcione los servicios requeridos tales como aplicaciones de oficina y servicios de Internet Estos sistemas bien pueden utilizarse como terminales de consulta de biblioteca o como terminales de trabajo

155

REFERENCIAS

[1] Colouris George Distributed Systems Concepts and design Pearson 2001

[2] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 1 Prentice Hall 2001

[3] Comer Douglas E Internetnetworking with TCPIP client-server programming and aplications volume 3 Prentice Hall 2001

[4] Comer Douglas E Redes de computadoras Internet e Interredes Prentice Hall 1997

[5] Hallberg Bruce A Fundamentos de redes McGraw Hill 2004 [6] Linthicumacutes David Guide to clientServer and intranet development

Wiley 1997 [7] Liu M L Computacioacuten distribuida Fundamentos y aplicaciones Pearson

2004 [8] Tanenbaum Andrew S Sistemas operativos modernos Prentice Hall

2003 [9] Preboot Execution Environment (PXE) Specification Version 21 Intel

Corporation and Systemsoft 1999 [10] Brown Todd Miller Chris Powell Keith Microsoft Windows 2000 server al

descubierto Prentice Hall 2000 [11] Spalding George Administracioacuten de Windows 2000 Mc Graw-Hill

2000 [12] Loacutepez Aacutengel Novo Alejandro Protocolos de Internet Disentildeo e

implementacioacuten en sistemas UNIX Alfaomega ra-ma 2000 [13] Campos Daniel Redrejo Jose Luis Gambas Programacioacuten Visual con

software Libre EditLin [14] Rittinghouse John W A Beginneracutes guide to GAMBAS [15] Peacuterez Cesar MySql para Windows y Linux 2ordf edicioacuten AlfaOmega 2008 [16] httptuxpucpucpedupecontentview45112 [17] httpwwwcidetecipnmxprofesoresjaalvarez

156

[18] Islas Octavio Gutieacuterrez FernandoInternet El Medio Inteligente

Edicioacuten 1 Cecsa Patria 2000 [19] Mcquerry Steve Interconexioacuten De Dispositivos De Red Cisco Edicioacuten

1 Cisco Press 2000 [20] Hornig C Standard for the Transmission of IP Datagrams over Ethernet Networks RFC 894 Symbolics April 1984 [21] Sun Microsystems System and Network Administration March 1990 [22] K R Sollins Noel Chiappa The TFTP Protocol RFC 783 NIC June 1981 [23] Croft B and J Gilmore Bootstrap Protocol (BOOTP) RFC 951 Stanford University and Sun Microsystems September 1985 [24] William Stallings ldquoHigh Speed Networks TCPIP and ATM Design

Principlesrdquo Prentice Hall 1998 [25] Christian Huitema ldquoRouting in the Internetrdquo Prentice Hall 1995

[26] Radia Perlman ldquoInterconnections Second Editionrdquo Addison Wesley 2000

[27] Liu Peek Jones Buus Nye Managing Internet Information Services OrsquoReilly 1994

[28] Nemeth Snyder Hein Linux Administration Handbook Prentice-Hall 2002

[29] Stallings W Comunicaciones y redes de computadores 7a ed Madrid Pearson Educacioacuten 2004

[30] Miller P TCPIP explained Boston Digital Press 1997 [31] Wegner J D Rockell R IP addressing and subnetting including IPv6

Rockland Syngress 2000 [32] Edicioacuten Especial Linux David Bandel y Robert Napier Prentice may [33] Comunicacioacuten entre Computadoras y Tecnologiacuteas de Redes MA

Gallo y WM Hancock 1 2002 Thomson Meacutexico

  • AGRADECIMIENTOS
  • IacuteNDICE
  • _______________________________________________
    • ANTECEDENTES
    • CAPIacuteTULO 1
    • 1-EL MODELO CLIENTE-SERVIDOR
    • CAPIacuteTULO 2
    • 2-SISTEMAS DISTRIBUIDOS
    • CAPIacuteTULO 3
    • 3-PROTOCOLOS REMOTOS
    • CAPIacuteTULO 4
    • DISENtildeO E IMPLEMENTACIOacuteN
    • CAPIacuteTULO 5
    • RESULTADOS Y CONCLUSIONES
    • GLOSARIO
      • Disentildeo e implementacioacuten de un sistema de consulta remota para una biblioteca
      • ANTECEDENTES
      • CAPIacuteTULO 1
      • 1 EL MODELO CLIENTE SERVIDOR
      • CAPIacuteTULO 2
      • 2 SISTEMAS DISTRIBUIDOS
      • CAPIacuteTULO 3
      • 3- PROTOCOLOS REMOTOS
      • CAPIacuteTULO 4
      • DISENtildeO E IMPLEMENTACIOacuteN
        • Despueacutes de la instalacioacuten del sistema operativo se empezaraacute por adecuar y poner en funcionamiento los cuatro servicios esenciales DHCP TFTP NFS y LSTP (Manejo de archivos Para ello se requiere la instalacioacuten de los paquetes
          • Arranque mediante el ROM de arranque PXE
            • Computadoras con BIOS compatible con BBS
              • CAPITULO 5
              • RESULTADOS Y CONCLUSIONES
              • TRABAJOS A FUTURO
                • APEacuteNDICE A
                  • FORMAS DE CONEXIOacuteN REMOTA
                    • REFERENCIAS
Page 8: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 9: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 10: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 11: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 12: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 13: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 14: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 15: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 16: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 17: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 18: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 19: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 20: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 21: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 22: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 23: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 24: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 25: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 26: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 27: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 28: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 29: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 30: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 31: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 32: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 33: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 34: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 35: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 36: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 37: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 38: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 39: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 40: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 41: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 42: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 43: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 44: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 45: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 46: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 47: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 48: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 49: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 50: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 51: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 52: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 53: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 54: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 55: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 56: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 57: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 58: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 59: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 60: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 61: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 62: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 63: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 64: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 65: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 66: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 67: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 68: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 69: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 70: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 71: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 72: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 73: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 74: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 75: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 76: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 77: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 78: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 79: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 80: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 81: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 82: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 83: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 84: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 85: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 86: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 87: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 88: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 89: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 90: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 91: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 92: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 93: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 94: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 95: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 96: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 97: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 98: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 99: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 100: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 101: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 102: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 103: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 104: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 105: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 106: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 107: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 108: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 109: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 110: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 111: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 112: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 113: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 114: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 115: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 116: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 117: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 118: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 119: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 120: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 121: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 122: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 123: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 124: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 125: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 126: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 127: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 128: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 129: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 130: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 131: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 132: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 133: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 134: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 135: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 136: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 137: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 138: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 139: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 140: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 141: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 142: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 143: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 144: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 145: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 146: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 147: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 148: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 149: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 150: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 151: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 152: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 153: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 154: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 155: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 156: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 157: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 158: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 159: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 160: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 161: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 162: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 163: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 164: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 165: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...
Page 166: INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y ...