You are on page 1of 70

Fundamentos de

sistemas
distribuidos
M.S.I. Eloisa Ruiz Gonzalez
Sistemas centralizados y sistemas
distribuidos
Surgieron a finales de la dcada de 1950, cuando las
computadoras comenzaron a estar comercialmente
disponibles; siendo muy caras y poco aprovechadas
1980 surgi el desarrollo de potentes microprocesadores y la
aparicin de computadoras personales.
Posteriormente, la solucin vino con las redes de alta
velocidad, que permitieron la interconexin de todo tipo de
computadoras .
La red de comunicaciones permitieron compartir y aprovechar
recursos.
Con la unin de equipos de cmputo personales y las LAN
nacieron los Sistemas en Red

Sistemas centralizados y
sistemas distribuidos
El auge de los Sistemas Distribuidos surgi en la dcada de
1980, cuando se extendi el uso de las computadoras y con
ste la utilizacin de Bases de datos.
1990s: la dcada de los sistemas distribuidos.
Buena relacin entre precio/rendimiento de sistemas
multiprocesadores, as como el crecimiento y mejoras de las
tecnologas basadas en redes.
Diferencias sistemas centralizados y los
distribuidos
Arquitectura de Sistemas Centralizados
nico computador (caro y de gran potencia) con terminales
alfanumricos directamente conectados.
Entornos de empresa:
Soporte multiusuario.
Uso de mainframes o minicomputadores.
Entornos cientficos:
Ejecucin eficiente de aplicaciones.
Uso de supercomputadores.
Uso ocasional de la red:
Transferir ficheros o logins remotos.
Interfaz de usuario poco amigable.
Interfaces grficas gastan muchos recursos

Diferencias sistemas centralizados y los
distribuidos
Arquitectura de Sistemas Distribuidos
Conjunto de procesadores conectados por una red.
Cada usuario tiene capacidad de procesamiento local que
permite interfaces de usuario sofisticadas.
Uso intensivo de la red para compartir recursos:
Dispositivos
Datos
Procesadores (migracin de procesos)
Capacidad global de procesamiento disponible para:
Servicio a mltiples usuarios.
Ejecucin paralela de una aplicacin

Ventajas SD con respecto a SC
Elemento Descripcin
Economa Los microprocesadores ofrecen mejor
proporcin precio/rendimiento que
los mainframes
Velocidad Un SD, puede tener mayor poder de
cmputo que un mainframe
Confiabilidad Si una mquina se descompone, el
sistema puede sobrevivir como un
todo
Crecimiento por incrementos Se pueden aadir poder de cmputo
en pequeos incrementos
La principal fuerza es la necesidad de las personas para trabajar en conjunto sin
importar la ubicacin fsica o geogrfica de maquinas y datos.
Ventajas SD con respecto a Pcs
Elemento Descripcin
Datos compartidos Permiten que varios usuarios tengan
acceso a
una base de datos en comn
Dispositivos compartidos Permiten que varios usuarios
compartan
perifricos caros, como las impresoras
Comunicacin Facilita la comunicacin de persona a
persona;
por ejemplo, E-Mail , Mensajera
instantnea
Flexibilidad Difunde la carga de trabajo entre las
mquinas
disponibles en la forma mas eficaz en
cuanto a
los costos.
El nacimiento de los sistemas
distribuidos
El nacimiento de los sistemas distribuidos se dio por las
siguientes causas:
Tecnologa de microprocesadores: relacin potencia/costo.
Tecnologas de comunicaciones:
Protocolos de comunicaciones.
Redes de rea local (LAN): Coste y prestaciones.
Internet.
Factores comerciales:
Comercio electrnico.
Informacin distribuida (WWW).
Reduccin de costes.

Sistemas Distribuidos
Podemos visualizar a los S.D de diversas formas como:
Un grupo de PCs conectadas en red que comparten recursos
Qu es un sistema
distribuido?
Existen varias definiciones para SD.
Un sistema distribuido es aquel en el que los componentes
localizados en computadoras, conectadas en red, comunican y
coordinan sus acciones nicamente mediante el paso de
mensajes
Sistemas Distribuidos Diseo y Conceptos, GEORGE
COULOURIS, JEAN DOLLIMOREY TIM KINDBERG
Un sistema distribuido es una coleccin de computadoras
independientes que aparecen ante los usuarios del sistema
como una nica computadora; Sistemas Operativos
Distribuidos,Andrew S.Tanenbaum.
Caractersticas bsicas de un
sistema distribuido
Est compuesto por mltiples equipos.
Los sistemas distribuidos estn compuestos de ms de un sistema
independiente, cada uno con uno o ms de equipos, memoria
local, memoria secundaria y conexiones con perifricos.
Hay interconexin entre ellos.
Si los varios equipos van a hacer trabajo en conjunto, para la
realizacin de tareas deben comunicarse y sincronizarse entre
ellos, por lo que requieren alguna lnea o red de interconexin.
Tienen un estado compartido.
Como los equipos realizan trabajo en conjunto, deben mantener
un estado compartido, es decir, todos los equipos deben de tener
la misma visin del estado del sistema distribuido como tablas,
bases de datos, servidores, etctera.

Caractersticas exclusivas de los
sistemas distribuido
La consistencia
La transparencia
La consistencia



La consistencia es una necesidad imperativa.

Tipos de inconsistencias

Inconsistencias de actualizacin
Inconsistencias de replicacin
Inconsistencias de cach
Inconsistencias de reloj
Inconsistencias de interfaz del usuario

Inconsistencias de actualizacin
Se presentan cuando diversos procesos acceden de manera
concurrente a los datos para modificarlos.
Se evita utilizando Transacciones
BEGIN TRANSACTION;

Retiro (Cantidad, Cuenta1);
Depsito (Cantidad, Cuenta2);
END TRANSACTION;

Inconsistencias de replicacin
Existen cuando en la red hay mltiples computadoras con un
conjunto de datos replicados.

Tambin pueden tenerse datos replicados en el sistema
distribuido para mejorar la velocidad general del sistema o
para tener tolerancia a fallo.
Inconsistencias de cach
Para evitar transferir datos a travs de la red, los usuarios
optan por descargar una copia del software una sola vez en su
mquina local, fa

tanto la rplica de datos como en la memoria cach se tienen
datos duplicados, el objetivo de la rplica de datos es la
tolerancia a fallos y la rapidez global del sistema mediante el
reparto de datos frente a mltiples consultas,cilitando el
acceso en posteriores consultas.
Inconsistencias de reloj
Algunos de los algoritmos utilizados en las aplicaciones y
programacin de sistemas dependen de unas marcas de
tiempos o timestamps que indican el momento en que ha
reemplazado pginas en memoria virtual.
Inconsistencias de Interfaz
del usuario
Estudios en ergonoma indican que el retardo de mostrar los
datos correspondientes en una pantalla no debe ser mayor de
una dcima de segundo, si se quiere dar la impresin de estar
trabajando con una mquina dedicada.
Interfaz intuitiva

La transparencia
La transparencia es algo que caracteriza especialmente a los sistemas
distribuidos, su ausencia no impide que el sistema funcione; no obstante, es una
caracterstica deseable, de tal forma que cuanto ms transparente sea un
sistema distribuido, ms se puede considerar como tal.
La construccin de un sistema distribuido que se comporte segn esperan los
usuarios, requiere la consideracin de otras caractersticas, que en un principio
son las deseables, como:
Compartimiento de recursos
Los beneficios de compartir recursos se pueden ver desde el punto de vista econmico.
Desde el punto de vista lgico, lo que va a permitir la interconexin de equipos va a ser
la posibilidad de un acceso a datos que permita el trabajo cooperativo en equipo
Sistemas abiertos
Los sistemas abiertos son aquellos sistemas informticos que proporcionan alguna
combinacin de interoperabilidad, portabilidad y uso de estndares abiertos (tambin
puede referirse a los sistemas configurados para permitir el acceso sin restricciones por
parte de personas y otros sistemas, si bien este artculo slo discute la primera
acepcin)
Escalabilidad
Es la tendencia que indica que el tamao de los sistemas distribuidos es hacia cientos de
miles y an decenas de millones de usuarios conectados.
Permite que los sistemas o las aplicaciones se expandan sin cambiar la estructura del
sistema o los algoritmos de programacin.

La transparencia
Existen cuellos de botella potenciales que se debe intentar
evitar en los sistemas distribuidos de gran escala como son:
Componentes centralizados:
Ejemplo: un slo servidor de correo para todos los usuarios.
Tablas centralizadas:
Ejemplo: un nico directorio telefnico en lnea.
Algoritmos centralizados:
Ejemplo: realizacin de un ruteo con base en la informacin
completa.
Se deben utilizar algoritmos descentralizados con las siguientes
caractersticas:
Ninguna mquina tiene la informacin completa acerca del estado del sistema.
Las mquinas toman decisiones slo con base en la informacin disponible de
manera local.
El fallo de una mquina no arruina el algoritmo.
No existe una hiptesis implcita de la existencia de un reloj global.

La transparencia
Tolerancia a fallos seguridad
Permite ocultar los fallos, pudiendo as los usuarios o aplicaciones
completar sus tareas a pesar de los fallos de componentes hardware
o software.
La disponibilidad de un sistema es una medida de la proporcin del
tiempo que est disponible para ser utilizado por el usuario.

Seguridad
En un sistema distribuido, la seguridad se complica, debido a:
Amenazas fsicas.
Ataques de red.
Control fsico de los recursos.
Para protegerse de los accesos indebidos se requieren diversos
mecanismos de seguridad, as como una poltica clara de utilizacin
de tales mecanismos.


La transparencia
Los mecanismos y polticas debern enfrentarse a los siguientes tipos
de acciones ilegales:
Filtraciones. Adquisicin de informacin por programas o personas no
autorizadas. Intromisiones. Alteracin no autorizada de la informacin.
Robo de recursos. Uso de recursos sin autorizacin (impresoras,
procesadores, etc.).
Vandalismo. Interferir la operacin de un sistema sin nimo de lucro

En los sistemas distribuidos estos actos suelen perpetrarse a travs
de los canales de comunicacin, realizando las siguientes acciones:
Escucha. Obtener copias de mensajes que pasan por la red.
Suplantacin. Enviar o recibir mensajes utilizando la identidad de otro
programa o persona.
Alteracin de mensajes. Interceptar mensajes y alterar su contenido.
Reenvo. Obtener copias de mensajes para utilizarlas posteriormente.
Existen mecanismos y polticas para impedir la realizacin de estas
acciones, o al menos para detectarlas e invalidarlas

La transparencia
Si un sistema rene todas estas propiedades conseguir la
caracterstica deseada por los usuarios: la transparencia, es
decir, el sistema se va a comportar de tal manera que el
usuario no perciba problemas que pudieran producirse

Objetivos de los sistemas
distribuidos
El desarrollo de sistemas distribuidos intenta poner solucin a los
siguientes objetivos:
Transparencia.
Existen varios perfiles de transparencia:
Acceso:
Manera de acceder a recurso local igual que a remoto.
Posicin:
Se accede a los recursos sin conocer su localizacin.
Migracin:
Recursos pueden migrar sin afectar a los usuarios.
Concurrencia:
Acceso concurrente no afecta a los usuarios.
Replicacin:
La existencia de rplicas no afecta a los usuarios.
Fallos:
La ocurrencia de fallos no afecta a los usuarios.
Crecimiento:
El crecimiento del sistema no afecta a los usuarios.
Heterogeneidad:
Carcter heterogneo no afecta a los usuarios.



Objetivos de los sistemas
distribuidos
Fiabilidad.
Fiabilidad como disponibilidad:
Tericamente: OR-lgico de sus componentes.
En ciertos casos: AND-lgico de varios componentes.
Mecanismos: redundancia y evitar componentes crticos.
Fiabilidad como coherencia:
Se dificulta con caching y redundancia
La fiabilidad est relacionada con la seguridad (otro objetivo).
Rendimiento.
Rendimiento para un servicio multiusuario:
Objetivo: Rendimiento no peor que un sistema centralizado.
Rendimiento para la ejecucin paralela de aplicaciones:
Objetivo: Rendimiento proporcional a procesadores empleados.
Factores:
Uso de esquemas de caching.
Intentar que muchos accesos se hagan localmente.
Uso de esquemas de replicacin.
Reparto de carga entre componentes replicados.
En ambos casos: Costo de mantener la coherencia.





Objetivos de los sistemas
distribuidos
Capacidad de crecimiento.
Diseo de un sistema distribuido debe evitar cuellos de botella:
Componentes centralizados.
Tablas centralizadas.
Algoritmos centralizados.
Caractersticas deseables en un algoritmo distribuido:
Ninguna mquina tiene informacin completa del estado del sistema. Las
decisiones se basan slo en informacin disponible localmente.
El fallo de una mquina no debe invalidar el algoritmo.
No debe asumir la existencia de un reloj global.


Objetivos de los sistemas
distribuidos
Flexibilidad.
Debe ser adaptable:
Facilidad para incorporar cambios y extensiones al sistema.
Uso preferible de arquitectura microkernel.
Importancia de sistemas abiertos:
Sus interfaces y protocolos deberan ser pblicos.
Contrario a tecnologa propietaria.
Uso de estndares siempre que sea posible.
Disponibilidad de su cdigo fuente (libremente o no).
Regulacin por parte de un colectivo (usuarios u organizaciones) y no por
particulares (fabricantes).


Objetivos de los sistemas
distribuidos
Seguridad
En un sistema distribuido, la seguridad se complica, debido a:
Amenazas fsicas.
Ataques de red.
Control fsico de los recursos
Los mecanismos y polticas debern enfrentarse a los siguientes
tipos de acciones ilegales:
Filtraciones. Adquisicin de informacin por programas o personas
no autorizadas.
Intromisiones. Alteracin no autorizada de la informacin.
Robo de recursos. Uso de recursos sin autorizacin (impresoras,
procesadores, etc.).
Vandalismo. Interferir la operacin de un sistema sin nimo de lucro.

Objetivos de los sistemas
distribuidos
En los sistemas distribuidos estos actos suelen perpetrarse a
travs de los canales de comunicacin realizando las
siguientes acciones:
Escucha. Obtener copias de mensajes que pasan por la red.
Suplantacin. Enviar o recibir mensajes utilizando la identidad de
otro programa o persona.
Alteracin de Mensajes. Interceptar mensajes y alterar su
contenido.
Reenvo. Obtener copias de mensajes para utilizarlas
posteriormente

Ventajas de los sistemas
distribuidos
Economa:
Buena relacin rendimiento/costo.
Alto rendimiento:
Procesamiento paralelo.
Soporte de aplicaciones inherentemente distribuidas.
Por ejemplo: empresa distribuida geogrficamente.
Capacidad de crecimiento:
Escalabilidad.
Fiabilidad y disponibilidad:
Tolerancia a fallos.
Carcter abierto y heterogneo:
Estndares de interoperabilidad.
Compartir recursos y datos

Desventajas de los Sistemas
Distribuidos
Necesidad de un nuevo tipo de software:
Ms complejo.
No hay todava un acuerdo sobre cmo debe ser.
Red de interconexin introduce nuevos problemas:
Prdida de mensajes y saturacin.
Latencia puede provocar que al recibir un dato ya est obsoleto.
La red es un elemento crtico.
Seguridad y confidencialidad

Arquitectura bsica de los
sistemas distribuidos



El objetivo de la arquitectura bsica de los sistemas distribuidos
es tener diseos modulares, mantenibles, flexibles y adaptables,
resaltando las funciones y caractersticas de los sistemas
distribuidos anteriormente mencionadas.
Arquitectura bsica de los
sistemas distribuidos
La arquitectura de sistemas distribuidos es un conjunto de
procesadores conectados por una red, donde cada usuario tiene
capacidad de procesamiento local que permite interfaces de usuario
sofisticadas, al igual que el uso intensivo de la red para compartir
recursos: dispositivos, datos, procesadores (migracin de procesos).

Hay tres puntos de vista bsicos para los sistemas distribuidos.
Est organizado en capas o niveles, los cuales tienen un propsito
bien definido.
Tiene factores comunes que intervienen en dos o ms capas.
Utiliza los aspectos globales para medir rendimiento y eficiencia.
Importancia de los sistemas
distribuidos

Proporcionar un entorno de trabajo conceptual: Objetivos,
factores, interrelacinales y una terminologa comn y dar un
panorama de algunos de los factores en el diseo de los
Sistemas Distribuidos.

Los factores que afectan a la organizacin
de los sistemas distribuidos
Factores relacionados con la identificacin, proteccin y
comparticin de recursos.
Traduccin de datos debida a varias formas de codificacin,
representacin y control.
La necesidad de un modelo para intercambio de mensajes.
Estructuras de recursos y servicios distribuidos.
Nuevas fuentes de error y de aqu esquemas de recuperacin
ms complejos.
La necesidad de mantener consistencia entre mltiples
administradores.
Reduccin del rendimiento debido al ancho de banda de
comunicacin entre componentes de un sistema distribuido.
Esquemas de medicin, verificacin y depuracin ms complejos.

La arquitectura de los sistemas
distribuidos desde el concepto de capas
Las capas son uno o varios procesos, localizados en los mismos
o diferentes equipos, que ofrecen y solicitan servicios.






Donde en la plataforma estn las capas ms bajas que
proporcionan servicio a las superiores y su implementacin es
dependiente de cada equipo


La arquitectura de los sistemas
distribuidos desde el concepto de capas
Capa de aplicacin
Contiene procesos que proporcionan servicios dependientes de la
aplicacin. Los cuales dependen de la necesidad de una aplicacin o
un conjunto de aplicaciones, como el manejo de procesos,
comunicacin, manejo de informacin, E/S virtuales, contabilidad,
etctera.
Los factores a considerar son:
La estructura de la aplicacin.
Cmo debe ser distribuido el proceso?
Cmo se deben organizar los procesos con propsitos de control y
comunicacin?
Cmo se deben distribuir los datos?
Qu mecanismos se requieren para soportar diferentes datos y unidades
de procesamiento?
Lenguajes de programacin.
Cules son las caractersticas deseables de un lenguaje, adems de las
propias para un sistema no distribuido?
Qu aspectos del sistema distribuido como identificacin, control de
errores y manejo de recurso deben ser visibles y bajo control del usuario o
manejados en forma automtica?


La arquitectura de los sistemas
distribuidos desde el concepto de capas
Middleware
Es una capa de software cuyo propsito es enmascarar la heterogeneidad y
proporcionar un modelo de programacin conveniente para los
programadores de aplicaciones; esta capa se ejecuta sobre el sistema
operativo local, ofreciendo unos servicios distribuidos estandarizados.

Sistema operativo
Un sistema operativo distribuido est organizado en dos subcapas bsicas:
subcapa de servicios y subcapa de soporte.

Sistema operativo distribuido deben hacer que:
Un programa, proceso, usuario o programador tenga una visin coherente y
uniforme de los objetos distribuidos.
La estructura de los servicios sea implementada sobre la base de un sistema
operativo de arquitectura comn.
La implantacin sea extensible: nuevos servicios, infraestructura bsica.

Comunicacin y sincronizacin
en sistemas distribuidos
Sistemas de paso de mensajes

Comunicacin cliente/servidor

Middlewares: RPC y RMI

Sistemas de paso de mensajes

Mensaje, en el sentido ms general, es el objeto de la
comunicacin. Est definido como la informacin que el
emisor enva al receptor a travs de un canal determinado o
medio de comunicacin (Wikipedia).

El envo de mensajes es til :
Cuando las necesidades de comunicacin son simples.
La cantidad de informacin que se puede transmitir, por unidad
de tiempo, es crtica.
El alcance del sistema es limitado, o sea, es preferible una
implementacin rpida que un diseo flexible y sofisticado.
Hay que evitar protocolos especficos de redes.
Cuando no estn disponibles protocolos de objetos remotos.
Caractersticas de los mensaje
Send y Receive.
El Send:
Nos indica en qu variable estn los datos que se envan.
Cuntos datos se envan.
Qu proceso recibe el mensaje.
Cul es el tipo de dato que se enva.
Qu proceso enva el mensaje.
El Receive es:
Dnde se almacenan los datos que se reciben.
Cuntos datos espera recibir el proceso receptor


Modelos complementarios de
comunicacin

Memoria compartida, en donde los procesos comparten
variables mediante las cuales comparten la informacin,
tienen un espacio de memoria comn, la responsabilidad de la
comunicacin recae sobre los programadores, y el Sistema
Operativo slo proporciona la memoria compartida.

Paso de mensajes, el cual permite a los procesos intercambiar
mensajes, sus procesos tienen espacios de direcciones
distintos, las operaciones bsicas de comunicacin las
proporciona el Sistema Operativo (Send y Receive) y es
necesario definir las caractersticas de los enlaces.

Paso de Mensajes
Primitiva de comunicacin, el cual podemos definirlo como
cada una de las funciones de comunicacin de una tecnologa
determinada.

Las Primitivas bsicas son:
Envo: send (destino, mensaje).
Recepcin: receive (fuente, mensaje).
Otras primitivas:
Conexin: connect(destino)
Desconexin: Close

Caractersticas de las
primitivas de comunicacin


Modelo de operacin: Bloqueantes y No-bloqueantes.
Sincronizacin: Sncronas y Asncronas.
Fiabilidad: Fiables y No-fiables.

Las caractersticas de bloqueo
Primitivas bloqueantes: La operacin bloquea al elemento
que la solicita hasta que sta sea completada.

Son lo ms natural y fcil de usar.
Necesita mltiples procesos.
El Send se bloquea hasta que se enva el mensaje.
El Recv se bloquea hasta que se recibe el mensaje.


Las caractersticas de bloqueo
Primitivas no-bloqueantes: La operacin no detiene la ejecucin del
elemento que la solicita.
Son ms difciles de usar y en ocasiones ms eficientes.
El Send retorna inmediatamente, copia el mensaje para enviarlo, o
guarda un puntero.
El Recv retorna si no hay mensaje que recibir.
Enva interrupciones para notificar envo/recepcin

En donde las llamadas no bloqueantes tienen distinto sentido,
dependiendo de la primitiva que se trate:
Envo no bloqueante: El emisor almacena el dato en un buffer del
ncleo (que se encarga de su transmisin) y reanuda su ejecucin.
Recepcin no bloqueante: Si hay un dato disponible el receptor lo
lee, en otro caso indica que no haba mensaje.

Cliente - Servidor
M.S.I. Eloisa Ruiz Gonzalez
Sistemas Computacionales Administrativos
2010

Cliente - Servidor
Desde un punto de vista conceptual:
El modelo cliente servidor es un modelo para construir sistemas de
informacin, que se sustenta en la idea de repartir el tratamiento
de la informacin y los datos por el sistema, permitiendo mejorar el
rendimiento del sistema global de informacin.

En trminos de arquitectura:
El modelo cliente servidor, en los aspectos que caracterizan a una
aplicacin en el sentido ms amplio; en su proceso,
almacenamiento, control y operaciones de entrada y salida de datos
estn situados en ms de una computadora, lo cuales estn
interconectados mediante una red de comunicaciones.

Esquema de cliente servidor

Comunicacin cliente/servidor
El modelo cliente-servidor se basa en un protocolo
solicitud/respuesta: el cual es sencillo y sin conexin, no es
complejo y orientado a la conexin TCP / IP.

El cliente es el que inicia un requerimiento de servicio (enva
un mensaje de solicitud al servidor pidiendo cierto servicio

Un servidor es cualquier recurso de cmputo dedicado a
responder a los requerimientos del cliente, es importante
aclarar que un servidor no es necesariamente un dispositivo
fsico, sino que es un proceso que se encarga de entender las
peticiones de un cliente.
Comunicacin cliente/servidor
Debido a su sencillez, tericamente el modelo se implementa
mediante 2 llamadas al sistema:

Para el envo de mensajes. send(dest,&mptr).
Para la recepcin de mensajes. receive(addr,&mptr)
Comunicacin cliente/servidor
Direccionamiento.
Antes de que un cliente pueda enviar un mensaje a algn
servidor, necesita tomar en cuenta algunos aspectos como:

A quien debo mandarle el mensaje?

El modelo cliente/servidor, implementa algunos mecanismos de
direccionamiento.
Comunicacin cliente/servidor
Integrar machine.number al cdigo del proceso cliente
donde:
machine: indica el nmero de mquina dentro de la red.
number: el nmero de proceso dentro de esa mquina.
Desventajas:
Este mtodo no posee la transparencia que se busca ya que se
est identificando que existen varias mquinas trabajando.
Si el servidor falla, se pierde el servicio pues los programas
compilados tienen integrado ese nmero de mquina para ese
servicio.
Comunicacin cliente/servidor
Dejar que los procesos elijan direcciones al azar y localizarlos
mediante transmisiones:
En una LAN que soporte transmisiones, el emisor puede
transmitir un paquete especial de localizacin con la direccin
del proceso destino.
Las mquinas en la red reciben este mensaje y verifican si la
direccin es la suya; en caso de que lo sea, regresa un mensaje
"aqu estoy" con su direccin en la red (nmero de mquina).
El cliente utiliza entonces esa direccin y la captura para uso
posterior. Si bien esto cumple con las premisas, genera una carga
adicional en el sistema.
Comunicacin cliente/servidor
Generar un servidor de nombres:
Cada vez que se ejecute un cliente en su primer intento por
utilizar un servidor, el cliente enva una solicitud al servidor de
nombres (nombre en ASCII) para pedirle el nmero de la mquina
donde se localiza el servidor.
Una vez obtenida la direccin se puede enviar la solicitud de
manera directa.

Desventajas.
El problema de este mtodo es que es un componente
centralizado y si bien se puede duplicar, presenta problemas en el
mantenimiento de la consistencia
Comunicacin cliente/servidor
Utilizar un hardware especial, dejando que los procesos elijan
su direccin en forma aleatoria.
En vez de localizar un proceso mediante transmisiones en toda la
red, los chips de interface de la red se disean de modo que
permitan a los procesos almacenar sus direcciones en dichos
chips.
Las tramas usaran direcciones de procesos en vez de direcciones
de mquinas. Al recibir cada trama, el chip de interface de la red
solo tendra que examinar la trama para saber si el proceso
destino se encuentra en esa mquina. En caso afirmativo, la
aceptara.
Elementos de la arquitectura
cliente-servidor
Toda aplicacin de un sistema de informacin est
caracterizada por tres componentes bsicos:
Presentacin /Capacitacin de informacin.
Procesos.
Almacenamiento de la informacin.
La arquitectura cliente-servidor es el resultado de la
integracin de dos culturas.
Por un lado la del Mainframe que aporta capacidad de
almacenamiento, integridad y acceso a la informacin
Por el otro, la del computador que aporta facilidad de uso, bajo
costo, presentacin atractiva y una amplia oferta de productos y
aplicaciones.


Caractersticas del modelo
cliente-servidor
El cliente y el servidor pueden actuar como una sola entidad y
tambin pueden actuar como entidades separadas, realizando
actividades o tareas independientes.
Las funciones de cliente y servidor pueden estar en plataformas
separadas o en la misma plataforma.
Un servidor proporciona servicio a mltiples clientes en forma
concurrente.
Cada plataforma puede ser escalable independientemente.
Los cambios realizados en las plataformas clientes o de los
servidores, ya sea por actualizacin o por reemplazo tecnolgico, se
realizan de una manera transparente para el usuario final.
La interrelacin entre el hardware y el software estn basados en
una infraestructura poderosa, de tal forma que el acceso a los
recursos de la red no muestra la complejidad de los diferentes tipos
de formatos de datos y de los protocolos.

Caractersticas del modelo
cliente-servidor
Las funciones de un cliente-servidor, pueden ser dinmicas, es decir,
tiene capacidad para integrar los equipos ya existentes en una
organizacin, dentro de una arquitectura informtica
descentralizada y heterognea.
Constituye como el nexo de unin ms adecuado para reconciliar los
sistemas de informacin basados en MainFrames o
minicomputadoras, con aquellos otros sustentados en entornos
informticos pequeos y estaciones de trabajo.
Designa un modelo de construccin de sistema informticos de
carcter distribuido.
Su representacin tpica es un centro de trabajo, una PC, en donde
el usuario dispone de sus propias aplicaciones de oficina y sus
propias bases de datos, sin dependencias directas del sistema
central de informacin, al tiempo que puede acceder a los recursos
de stos en el host central y otros sistemas que la organizacin pone
a su servicio

Ventajas de la arquitectura
cliente-servidor
Simplifica el desarrollo de aplicaciones, la existencia de plataformas de hardware cada vez ms
baratas.

sta constituye, a su vez, una de las ms palpables ventajas de este esquema, la posibilidad de utilizar
mquinas considerablemente ms baratas que las requeridas por una solucin centralizada, basada en
sistemas grandes.

Puede utilizar componentes, tanto de hardware como de software, de varios fabricantes lo cual
contribuye considerablemente a la reduccin de costos y favorece la flexibilidad en la implantacin y
actualizacin de soluciones.

Fcil correspondencia de las aplicaciones en modelos C/S.

El esquema Cliente/Servidor facilita la integracin entre sistemas diferentes y comparte informacin,
permitiendo, por ejemplo, que las mquinas ya existentes puedan ser utilizadas, pero con interfaces
ms amigables al usuario. De esta manera podemos integrar PCs con sistemas medianos y grandes, sin
necesidad de que todos tengan que utilizar el mismo sistema operacional.

Interaccin ms intuitiva con el usuario.

El uso de interfaces grficas para el usuario, el esquema clienteservidor presenta la ventaja, con
respecto a uno centralizado, de que no es siempre necesario transmitir informacin grfica por la red,
pues sta puede residir en el cliente, lo cual permite aprovechar mejor el ancho de banda de la red.

Ventajas de la arquitectura
cliente-servidor
Una ventaja adicional del uso del esquema clienteservidor
es que es ms rpido el mantenimiento y el desarrollo de
aplicaciones, pues se pueden emplear las herramientas
existentes (por ejemplo, los servidores de SQL o las
herramientas de ms bajo nivel como los sockets o el RPC).
La estructura inherentemente modular facilita, adems, la
integracin de nuevas tecnologas y el crecimiento de la
infraestructura computacional, favoreciendo as la
escalabilidad de las soluciones.
El esquema clienteservidor contribuye, adems, a
proporcionar, a los diferentes departamentos de una
organizacin, soluciones locales, pero permitiendo la
integracin de la informacin relevante a nivel global.

Desventajas de la arquitectura
cliente-servidor
Tiene escasas herramientas para la administracin y ajuste
del desempeo de los sistemas.
En el desarrollo de aplicaciones clienteservidor se deben
considerar los aspectos que se mencionan a continuacin:
Los clientes y los servidores debern utilizar el mismo mecanismo
(por ejemplo: sockets o RPC), lo cual implica que se deben tener
mecanismos generales que existan en diferentes plataformas.
Debe tener estrategias para el manejo de errores y para
mantener la consistencia de los datos.
La seguridad de un esquema clienteservidor es muy importante.
Se deben hacer verificaciones en el cliente y en el servidor.
Tambin se puede recurrir a otras tcnicas como el encuitar
informacin.
El desempeo. Problemas de este estilo pueden presentarse por
congestin en la red, dificultad de trfico de datos, etctera

Servicios basados en la
arquitectura clienteservidor
Servicios de Datos e Impresin:
Servicios que permiten compartir archivos, bases de datos,
impresoras y graficadores (plotters).
Administracin de las colas de impresin en diferentes
dispositivos.
Servicios de Comunicaciones:
Aseguran que cada componente fsico de la red sea capaz de
comunicarse exitosamente con otros componentes, tales como
LAN a LAN y LAN a WAN. El sistema puede incluir dispositivos de
comunicaciones que manejen diferentes tipos de protocolos para
conectar sistemas heterogneos.

Servicios basados en la
arquitectura clienteservidor
Servicio de Administracin:
Administracin de Sistemas involucra administracin de cambios, de
problemas, operaciones, configuracin y rendimiento.
Administracin de Cambios: es definida como las actividades involucradas en
la planeacin, programacin, distribucin, instalacin y registro de hardware
y software en una red distribuida.
Administracin de Problemas: involucra la determinacin de los mismos, la
identificacin de su origen en una red y su solucin.
Administracin de Operaciones: es definida como la administracin del uso
de los sistemas y de los recursos para soportar la carga de trabajo de la
organizacin, la cual incluye operaciones automatizadas y remotas.
Administracin de Configuracin: es el manejo de las relaciones lgicas y
fsicas entre los recursos de la red.
Administracin del Rendimiento: es un conjunto de actividades tales como la
recopilacin de datos de desempeo, afinamiento, distribucin de carga de
trabajo y el planeamiento de la capacidad para las redes distribuidas.
Administracin de Sistemas: tambin incluye servicios de respaldo,
recuperacin de datos, seguridad de recursos de cmputo y distribucin y
mantenimiento de software.

Servicios basados en la
arquitectura clienteservidor
Servicios de Aplicacin:
Si el recurso compartido es una parte de una aplicacin (una
funcin de la aplicacin), estamos hablando de servicios de
aplicacin. Cada uno de los procesadores participantes en un
ambiente clienteservidor puede mantener parte del cdigo de la
aplicacin, el cual debe ser compartido por todos ellos
(interoperabilidad). Esto significa que las partes de una aplicacin
pueden ser distribuidas en varios procesadores, locales o
remotos.
El diseo de las funciones de la aplicacin no debe estar ligado a
un computador, lo que permite transportar la aplicacin de un
procesador a otro, sin modificaciones (portabilidad).
Una ventaja derivada de esto es que la aplicacin puede estar
ptimamente ubicada dentro de una red con base en las
necesidades: de recursos de cmputo y de la organizacin.

Desarrollo de aplicaciones con la
arquitectura cliente - servidor
Capa (Distribucin lgica)
Conjunto de servicios especializados que pueden ser accesibles
por mltiples clientes y que deben ser fcilmente reutilizables.

Modelo de capas
Desarrollo paralelos
Aplicaciones ms robustas
Mantenimiento y soporte ms sencillo
Mayor flexibilidad
Alta escalabilidad

Modelo de 3 capas

Capa de Presentacin
Lgica de negocio
Datos
Modelo de n capas