Conociendo el modelo Cliente-Servidor
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 Escalabilidad en las comunicaciones.
Definición Desde un punto de vista conceptual: Es un modelo para construir sistemas de información, que se sustenta en la idea de repartir el tratamiento de la información y los datos por todo el sistema informático, permitiendo mejorar el rendimiento del sistema global de información
Definición En términos de arquitectura: Los distintos aspectos que caracterizan a una aplicación (proceso, almacenamiento, control y operaciones de entrada y salida de datos) en el sentido más amplio, están situados en más de un computador, los cuales se encuentran interconectados mediante una red de comunicaciones».
Definición 3. Cliente/Servidor Es la tecnología que proporciona al usuario final el acceso transparente a las aplicaciones, datos, servicios de cómputo o cualquier otro recurso del grupo de trabajo y/o, a través de la organización, en múltiples plataformas. El modelo soporta un medio ambiente distribuido en el cual los requerimientos de servicio son hechos por estaciones de trabajo "clientes'', y los servicios resultan un trabajo realizado por otras computadoras llamadas servidores.
El Cliente Es quien 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). Es quien inicia un requerimiento de un servicio. Es quien espera respuestas del servidor. Es quien puede conectarse a varios servidores a la vez.
El Servidor Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de múltiples servicios a los clientes tales como impresión, acceso a bases de datos, fax, procesamiento de imágenes, etc.
Arquitectura 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.
Arquitectura mono-capa Entendemos por aplicaciones mono-capa, aquellas que tanto la propia aplicación como los datos que maneja se encuentran en la misma máquina y son administradas por la misma herramienta: podríamos decir que son una sola entidad
Arquitectura En una arquitectura cliente/servidor clásica tenemos dos "capas" Una donde está el cliente que implementa la interface. Otra donde se encuentra el gestor de bases de datos que trata las peticiones recibidas desde el cliente. La lógica de la aplicación se encuentra por tanto repartida entre el cliente y servidor.
En la arquitectura cliente/servidor de tres capas añadimos una nueva capa entre el cliente y el servidor donde se implementa la lógica de la aplicación. De esta forma el cliente es básicamente una interface, que no tiene por qué cambiar si cambian las especificaciones de la base de datos o de la aplicación; queda aislado completamente del acceso a los datos. Arquitectura En esta Arquitectura todas las peticiones de los clientes se controlan en la capa correspondiente a la lógica del negocio. Cuando el cliente necesita hacer una petición se la hace a la capa en la que se encuentra la lógica del negocio.
¿Que tipos de clientes conocemos? ¿En nuestros TPs quienes son los clientes? ¿Quien hace de cliente en nuestras pcs para conectarnos a internet? ¿Que aplicaciones conocés para internet que sean Clientes?
¿Que tipos de servidores conocemos? ¿Si los clientes son los navegadores que tipos de servicios hay en internet? ¿Si los servidores proveen servicios, que servidores conocés dentro de una PC? ¿En los ultimos TPs que hicimos quienes manejan los pedidos del formulario (cliente)?
Ejemplo en la WEB Cliente Maquina cliente (conectada a una red, ejemplo Internet) Programa cliente (Mozilla Firefox, Internet Explorer, Chrome, etc) Servidor Maquina servidor (aloja los archivos de las páginas web) Programa servidor (Apache, IIS, 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. Las actualizaciones se realizan del lado del servidor y el cliente no tiene necesidad de actualizarse. Toda la información es almacenada en el lado del servidor, que suele tener mayor seguridad que los clientes. Se pueden crear distintas interfaces gráficas (clientes) para acceder al mismo servicio (Servidor)
Desventajas La congestión del tráfico ha sido siempre un problema en el paradigma 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 desempeño es otro de los aspectos que se deben tener en cuenta en el esquema Cliente/Servidor. Pueden presentarse problemas por congestión en la red, dificultad de tráfico de datos, etc.