Es un modelo de diseño de software en el
que las tareas se reparten entre los
proveedores de recursos o servicios,
llamados servidores, y los demandantes,
llamados clientes.(Schiaffarino, 2019, p1)
En el ámbito de la informática, se llama
cliente al dispositivo que requiere ciertos
servicios a un servidor. La idea de
servidor, por su parte, alude al equipo
que brinda servicios a las computadoras
(ordenadores) que se hallan conectadas
con él mediante una red.(Schiaffarino,
2019, p1)
El modelo Cliente/Servidor es un modelo de
aplicación distribuida en el que las tareas se
reparten entre los proveedores de recursos
o servicios, llamados servidores, y los
demandantes, llamados clientes. Las
aplicaciones Clientes realizan peticiones a
una o varias aplicaciones Servidores, que
deben encontrarse en ejecución para
atender dichas demandas.(Marini, 2012, p1)
Importancia
La principal importancia de este modelo es que permite conectar a varios clientes a los servicios que
provee un servidor y como sabemos hoy en día, la mayoría de las aplicaciones y servicios tienen
como gran necesidad que puedan ser consumidos por varios usuarios de forma simultanea.
Esta arquitectura se aplica en diferentes modelos informáticos alrededor del mundo donde su
propósito es mantener una comunicaciones de información entre diferentes entidades de una red
mediante el uso de protocolos establecidos y el apropiado almacenaje de la misma.
En esta arquitectura el cliente suele ser estaciones de trabajo que solicitan varios servicios al
servidor, mientras que un servidor es una máquina que actúa como depósito de datos y funciona
como un sistema gestor de base de datos, este se encarga de dar la respuesta demandada por el
cliente.
Componentes
Red: Una red es un conjunto de clientes, servidores y
base de datos unidos de una manera física o no física
en el que existen protocolos de transmisión de
información establecidos.
Cliente: El concepto de cliente hace referencia a un
demandante de servicios, este cliente puede ser un
ordenador como también una aplicación de
informática, la cual requiere información proveniente
de la red para funcionar.
Servidor: Un servidor hace referencia a un proveedor
de servicios, este servidor a su vez puede ser un
ordenador o una aplicación informática la cual envía
información a los demás agentes de la red.
Protocolo: Un protocolo es un conjunto de normas o
reglas y pasos establecidos de manera clara y
concreta sobre el flujo de información en una red
estructurada.
Servicios: Un servicio es un conjunto de información
que busca responder las necesidades de un cliente,
donde esta información pueden ser mail, música,
mensajes simples entre software, videos, etc.
Base de datos: Son bancos de información
ordenada, categorizada y clasificada que forman
parte de la red, que son sitios de almacenaje para
la utilización de los servidores y también
directamente de los clientes.
Diferencia entre cliente y servidor
El cliente es un computador pequeño con una
estructura al igual a la que tenemos en nuestras
oficinas u hogares la cual accede a un servidor o a
los servicios del mismo a través de Internet o una
red interna.
El servidor es una computadora que tiene
gran capacidad de almacenamiento de
diversos de archivos, o correr varias
aplicaciones en simultaneo permite a los
clientes poder acceder los servicios.
Tipos de arquitecturas
Arquitectura de dos capas
Esta se utiliza para describir los sistemas cliente servidor
en donde el cliente solicita recursos y el servidor
responde directamente a la solicitud con sus propios
recursos. Eso significa que el servidor no requiere de una
aplicación extra para proporcionar parte del servicio.
Arquitectura de tres capas
En la arquitectura de tres capas existe un nivel intermediario, eso significa que la arquitectura
generalmente está compartida por un cliente que como hablamos más arriba es el que solicita los
recursos equipado con una interfaz de usuario o mediante un navegador web.
Arquitectura N capas
En la arquitectura de tres capas, los servidores dos y tres realizaron una tarea específica por lo tanto
un servidor web puede usar los servicios de otros servidores para poder proporcionar su propio
servicio.
Ventajas y Desventajas
Ventajas
Facilita la integración entre diferentes sistemas y comparte información permitiendo por ejemplo
que las máquinas ya existentes puedan ser utilizadas mediante una interfaz más amigable para el
usuario. De esta manera podemos integrar varias PCs con sistemas medianos y grandes sin
necesidad de que todos tengan que utilizar el mismo sistema operativo.
Al favorecer el uso de las interfaz de gráficas interactivas, los sistemas construidos bajo este
esquema tienen una mayor interacción con el usuario.
La estructura modular facilita de más la integración de nuevas tecnologías y el crecimiento de la
infraestructura computacional favoreciendo así la estabilidad de las soluciones.
El modelo cliente servidor permite además proporcionar a las diferentes áreas de una empresa
generar un orden de trabajo en donde cada sector puede trabajar en su área pero accediendo al
mismo servidor e información que los demás sin generar conflictos. Esto es de gran utilidad ya que si
ponemos como ejemplo una empresa con varios empleados al momento de trabajar es importante
que todos puedan hacerlo en simultáneo.
Desventajas
Requiere habilidad para que un servidor sea reparado. Por ejemplo si un problema ocurre en la red,
se requiere de alguien con un amplio de esta para poder repararla en su totalidad para así dejar que
la información y el correcto funcionamiento siga su flujo.
Otro problema es la seguridad, el hecho que se comparte canales de información entre servidores y
clientes requieren que estas pasen por procesos de validación, es decir protocolos de seguridad que
pueden tener algún tipo de puerta abierta permitiendo que se generen daños físicos, amenazas o
ataques de malware.
Este modelo representa una limitación importante en cuanto a los costos económicos debido a que
estos servidores son computadoras de alto nivel con un hardware y software específicos para poder
dar un correcto funcionamiento a nuestras aplicaciones. Algo importante a destacar es que no solo
es caro a la hora de solucionar problemas como mencionamos antes, sino que también tiene un
costo elevado para reemplazar componentes que estén averiados.