Modelo Cliente / Servidor Gerardo Grinman 5D Introducción • En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama modelo Cliente-Servidor. • Éste es un modelo que intenta proveer: – usabilidad, – flexibilidad, – interoperabilidad – y escalabilidad en las comunicaciones. … Introducción • Su funcionamiento es sencillo: se tiene una máquina cliente, que requiere un servicio de una máquina servidor, y éste realiza la función para la que está programado (nótese que no tienen que tratarse de máquinas diferentes; es decir, una computadora por sí sola puede ser ambos cliente y servidor dependiendo del software de configuración ). Definición • Una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aún en entornos multiplataforma. Funcionamiento • En el modelo cliente servidor, el cliente envía un mensaje solicitando un determinado servicio a un servidor (hace una petición), y este envía uno o varios mensajes con la respuesta (provee el servicio). En un sistema distribuido cada máquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras. … Funcionamiento • Usualmente la mayoría del trabajo pesado se hace en el proceso llamado servidor y el o los procesos cliente sólo se ocupan de la interacción con el usuario (aunque esto puede variar). • En otras palabras la arquitectura Cliente/Servidor es una extensión de programación modular en la que la base fundamental es separar una gran pieza de software en módulos con el fin de hacer más fácil el desarrollo y mejorar su mantenimiento. Cliente • El Cliente normalmente maneja todas las funciones relacionadas con la manipulación y despliegue de datos, por lo que están desarrollados sobre plataformas que permiten construir interfaces gráficas de usuario (GUI), además de acceder a los servicios distribuidos en cualquier parte de una red. Cliente • El Cliente es una aplicación o una computadora que consume un servicio remoto en otro computador. • Se utiliza para obtener datos externos (por ejemplo: paginas web, informacion bursatil o bases de datos), interactuar con otros usuarios a traves de un gestor central (BitTorrent o IRC) y otros ejemplos. • Uno de los clientes mas utilizados es el navegador web! Ejemplo: Internet Explorer, Firefox, Chrome, Opera, etc. Servidor • Es el encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. • El servidor normalmente maneja todas las funciones relacionadas con la mayoría de las reglas del negocio y los recursos de datos. Tipos de Servidores • Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de otros clientes de la red. • Servidor de correo: almacena, envía, recibe, enruta y realiza otras operaciones relacionadas con el correo electrónico para los clientes de la red. • Servidor web: almacena documentos HTML, imágenes, archivos de texto, escrituras, y demás material Web compuesto por datos (conocidos colectivamente como contenido), y distribuye este contenido a clientes que la piden en la red. • Servidor de base de datos: provee servicios de base de datos a otros programas u otras computadoras, como es definido por el modelo cliente-servidor. Ejemplo • Para ver una Pagina Web se requiere: – Un servidor web: • Maquina servidor (www.google.com, www.ort.edu.ar) • Programa servidor (Apache, IIS, etc) – Un cliente • Maquina cliente (conectada a una red, ejemplo Internet) • Programa cliente (Mozilla Firefox, Internet Explorer, Chrome, etc) Ventajas • Centralización del control: los accesos, recursos y la integridad de los datos son controlados por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda dañar el sistema. • Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. • Fácil mantenimiento. • Aumento de seguridad en las transacciones. Desventajas • La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. • Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. • El software y el hardware de un servidor son generalmente muy determinantes. • El cliente no dispone de los recursos que puedan existir en el servidor. Por ejemplo, si la aplicación es una Web, no podemos escribir en el disco duro del cliente.