Servidor de cliente

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 21 de octubre de 2017; las comprobaciones requieren 30 ediciones .

"Cliente - servidor" ( eng.  cliente-servidor ): una arquitectura informática o de red en la que las tareas o la carga de la red se distribuyen entre proveedores de servicios, denominados servidores, y clientes de servicios, denominados clientes. De hecho , el cliente y el servidor  son software . Por lo general, estos programas se ubican en diferentes computadoras e interactúan entre sí a través de una red de computadoras usando protocolos de red , pero también pueden estar ubicados en la misma máquina. Los programas del servidor esperan las solicitudes de los programas del cliente y les proporcionan sus recursos en forma de datos (por ejemplo, la transferencia de archivosa través de HTTP , FTP , BitTorrent , transmisión de medios u operaciones de base de datos ) o como funciones de servicio (por ejemplo, correo electrónico , comunicación a través de sistemas de mensajería instantánea o navegación web en la World Wide Web ). Dado que un programa de servidor puede ejecutar solicitudes de muchos programas de cliente, se coloca en una computadora especialmente dedicada configurada de una manera especial, por regla general, junto con otros programas de servidor, por lo que el rendimiento de esta máquina debe ser alto. Debido a la función especial de una máquina de este tipo en la red, las características específicas de su hardware y software, también se denomina servidor , y las máquinas que ejecutan programas de cliente, respectivamente, son clientes.

El papel del cliente y el servidor

La característica cliente-servidor describe la relación de los programas que interactúan en una aplicación. El componente de servidor proporciona una función o servicio a uno o más clientes que inician solicitudes de dichos servicios. Los servidores se clasifican según los servicios que prestan. Por ejemplo, un servidor web sirve páginas web, mientras que un servidor de archivos sirve archivos de computadora. Un recurso compartido puede ser cualquiera de los componentes electrónicos y de software de una computadora servidor, desde programas y datos hasta procesadores y dispositivos de almacenamiento. El uso compartido de recursos del servidor es un servicio .

La naturaleza de la aplicación que requiere los servicios determina si una computadora es un cliente, un servidor o ambos. Por ejemplo, los servidores web y el software del servidor de archivos pueden ejecutarse simultáneamente en la misma computadora para servir diferentes datos para los clientes que realizan diferentes tipos de solicitudes. El software del cliente también puede interactuar con el software del servidor en la misma computadora. La comunicación entre servidores, como la sincronización de datos, a veces se denomina entre servidores .

Interacción entre cliente y servidor

En términos generales, un servicio es una abstracción de los recursos informáticos, y el cliente no tiene que preocuparse por cómo funciona el servidor cuando realiza una solicitud y entrega una respuesta. El cliente solo necesita comprender la respuesta basada en el protocolo de aplicación conocido, es decir, el formato de contenido y datos para el servicio solicitado.

Los clientes y servidores intercambian mensajes en un patrón de solicitud-respuesta. El cliente envía una solicitud y el servidor devuelve una respuesta. Este mensaje es un ejemplo de comunicación entre procesos. Para comunicarse, las computadoras deben tener un lenguaje común y deben seguir reglas para que tanto el cliente como el servidor sepan qué esperar. El idioma y las reglas de comunicación se definen en el protocolo de comunicación. Todos los protocolos del modelo cliente-servidor funcionan en la capa de aplicación. El protocolo de la capa de aplicación define los patrones de conversación básicos. Para formalizar aún más el intercambio de datos, el servidor puede implementar una interfaz de programación de aplicaciones ( API ). Una API es una capa de abstracción para acceder a un servicio. Al limitar el enlace a un formato de contenido específico, facilita el análisis. Al abstraer el acceso, facilita el intercambio de datos entre plataformas.

El servidor puede recibir solicitudes de muchos clientes diferentes en un corto período de tiempo. Una computadora solo puede realizar una cantidad limitada de tareas a la vez y depende de un sistema de programación para priorizar las solicitudes entrantes de los clientes para satisfacerlas. Para evitar abusos y maximizar la disponibilidad, el software del servidor puede limitar la disponibilidad para los clientes. Los ataques de denegación de servicio explotan la responsabilidad del servidor de procesar las solicitudes; dichos ataques funcionan sobrecargando el servidor con una frecuencia excesiva de solicitudes. Se debe utilizar el cifrado si se va a transferir información confidencial entre el cliente y el servidor.

Comparación con la arquitectura peer-to-peer

Además del modelo cliente-servidor, las aplicaciones informáticas distribuidas suelen utilizar una arquitectura de igual a igual .

El cliente-servidor a menudo se diseña como un sistema centralizado que sirve a muchos clientes. Por lo tanto, los requisitos de energía, memoria y almacenamiento del servidor deben escalar con la carga esperada. Los sistemas de balanceo de carga y conmutación por error a menudo se usan para escalar un servidor más allá de una sola máquina física. En una red peer-to-peer, dos o más computadoras agrupan sus recursos e interactúan en un sistema descentralizado. Los nodos pares son nodos pares o equipotenciales en una red no jerárquica. A diferencia de los clientes en una arquitectura cliente-servidor o cliente-cola-cliente, los pares se comunican directamente entre sí. En una red peer-to-peer, el algoritmo del protocolo de comunicación peer-to-peer equilibra la carga, e incluso los peers con pocos recursos pueden ayudar a compartir la carga. Si un nodo deja de estar disponible, sus acciones permanecen disponibles siempre que otros pares las ofrezcan. Idealmente, un nodo no necesita lograr una alta disponibilidad, ya que otros nodos compensarán cualquier tiempo de inactividad de los recursos. A medida que cambia la disponibilidad y el rendimiento de los pares, el protocolo redirige las solicitudes. Tanto el cliente-servidor como el maestro-esclavo se consideran subcategorías de sistemas distribuidos de igual a igual.

Beneficios

Desventajas

Arquitectura cliente-servidor en capas

Una arquitectura cliente-servidor de varios niveles  es un tipo de arquitectura cliente-servidor en la que la función de procesamiento de datos se ubica en varios servidores separados. Esto le permite separar las funciones de almacenamiento, procesamiento y presentación de datos para un uso más eficiente de las capacidades de servidores y clientes.

Casos especiales de arquitectura multinivel:

Red de servidores dedicados

Una red con un servidor dedicado ( eng.  red cliente/servidor ) es una red de área local (LAN) en la que los dispositivos de red están centralizados y controlados por uno o más servidores. Las estaciones de trabajo individuales o los clientes (como una computadora personal) deben acceder a los recursos de la red a través de los servidores.

Literatura