Cliente-servidor

La arquitectura cliente-servidor es un modelo de aplicación distribuida en el que las tareas se reparten entre los servidores o proveedores de servicios, y los clientes, quienes realizan peticiones al servidor. La separación lógica entre cliente y servidor es muy ventajosa desde el punto de vista organizativo, ya que facilita el diseño del sistema y centraliza la gestión.

Cliente-servidor

Qué es la arquitectura cliente-servidor

La arquitectura cliente-servidor es un paradigma de aplicación distribuida en el que un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Cliente y servidor suelen estar en computadoras diferentes, aunque también pueden ejecutarse ambos programas sobre una sola computadora.

Veamos las diferentes características del cliente y el servidor:

  • Servidor: es el receptor de la solicitud enviada por el cliente. Al iniciarse quedan a la espera de que lleguen solicitudes de los clientes. Tras recibir una solicitud, la procesan y luego envían la respuesta al cliente. Generalmente aceptan conexiones de un gran número de clientes, aunque el número máximo de peticiones simultáneas puede estar limitado.
  • Cliente: es el remitente de una solicitud al servidor, quien inicia la comunicación. Una vez enviada la petición, queda a la espera hasta recibir la respuesta del servidor. Generalmente puede conectarse a múltiples servidores a la vez.

En la arquitectura cliente-servidor los roles de cliente y servidor están bien diferenciados y no son intercambiables, a diferencia de otros modelos como el peer to peer (P2P) en el que los roles no están definidos y se puede ser tanto cliente como servidor, incluso simultáneamente.

Respecto a las ventajas del modelo cliente-servidor, las principales son las siguientes:

  • Recursos centralizados: en el servidor se centraliza el control del sistema, los accesos, recursos, actualizaciones y la integridad de los datos, de tal manera que un programa cliente defectuoso no pueda dañar el sistema.
  • Seguridad mejorada: las tecnologías diseñadas para el paradigma cliente-servidor aseguran la seguridad en las transacciones, una interfaz amigable y la sencillez de empleo.
  • Fácil administración: gracias a la encapsulación de funciones en los servidores, generalmente es posible reemplazar, reparar, actualizar o incluso trasladar un servidor, sin que los clientes se vean afectados por el cambio, o sean afectados mínimamente.
  • Escalabilidad: en cualquier momento puede ser mejorado cualquier elemento o se pueden añadir nuevos nodos a la red, tanto clientes como servidores, sin que esto afecte al funcionamiento de la red.

En cuanto a las desventajas de la arquitectura cliente-servidor, podemos citar:

  • Costo elevado: dada la complejidad técnica del servidor, tanto a nivel de software como de hardware, el coste se ve incrementado.
  • Debilidad: el paradigma cliente-servidor presenta la desventaja de que cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. Para evitar esta situación, se implementan sistemas de servidores redundantes balanceados que puedan asumir la falla de alguno de ellos manteniendo la integridad del sistema.
  • Tráfico excesivo: la demanda excesiva por parte de clientes al mismo servidor puede congestionar la red y causar problemas al servidor.

El modelo cliente-servidor es recomendado para redes que necesiten fiabilidad, seguridad, escalabilidad y fácil administración, por lo que se utiliza habitualmente en servidores web, servidores de archivos y servidores de correo electrónico, ya que todos ellos básicamente recepcionan solicitudes de información y envían los datos requeridos a múltiples clientes.

Artículos en la categoría "Desarrollo web"

  1. Administrador de sistemas (sysadmin)
  2. Agregador
  3. API web
  4. Aplicación web
  5. Cliente-servidor
  6. CMS
  7. Cookie
  8. DNS (Domain Name System)
  9. Ética hacker
  10. Fuente RSS
  11. Fuente web (feed)
  12. FTP
  13. HTTP
  14. HTTPS
  15. Internet y el protocolo IP
  16. JavaScript
  17. LAMP
  18. PHP
  19. Servicio web
  20. Servidor web
  21. Sindicación web
  22. SSL
  23. URL
  24. W3C (World Wide Web Consortium)
  25. Webmaster
  26. Web scraping
  27. Alojamiento web (hosting)
  28. Alojamiento compartido
  29. Host
  30. Hosting gratuito
  31. Servidor (hardware)
  32. Housing
  33. Servidor dedicado
  34. Servidor virtual privado
  35. Posicionamiento en buscadores
  36. Consultor SEO
  37. Black Hat SEO
  38. Google Analytics
  39. Marketing de artículos
  40. Herramientas para webmasters de Google (Google Webmaster Tools)
  41. Formato Spintax para spinning de artículos
  42. PageRank
  43. Cómo registrar nombres de dominio
  44. Palabra clave (keyword)
  45. Meta tags
  46. Cómo elegir un nombre de dominio
  47. Consejos para registrar nombres de dominio
  48. Penalización en buscadores
  49. Backlink
  50. Buscador (web search engine)
  51. Página de resultados del buscador (SERP)
  52. Permalink
  53. Dónde dar de alta nuestra web
  54. Dominios de Internet
  55. Link baiting
  56. Link building
  57. Tráfico web
  58. URL amigables

Los comentarios están cerrados