Diferencia entre revisiones de «Cliente-servidor»

De Wikipedia, la enciclopedia libre
Contenido eliminado Contenido añadido
Panderine! (discusión · contribs.)
m Bot: Marca para revisión errores comunes. ¿Fue un error?, repórtalo aquí
m Revertido a la revisión 27127116 hecha por Tirithel; vandalismo. (TW)
Línea 1: Línea 1:
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa -el [[servidor]]- que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo [[multiusuario]] distribuido a través de una [[red de computadoras]].
[[Archivo:--[[Especial:Contributions/190.81.186.36|190.81.186.36]] ([[Usuario Discusión: {{revisar}}190.81.186.36|discusión]]) 01:50 1 sep 2009 (UTC)Ejemplo.jpg
----
]]


RARON =ARON
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.


La separación entre [[cliente (informática)|cliente]] y [[servidor]] es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de [[servidor]]es incluyen los servidores [[web]], los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.
La separación entre [[cliente (informática)|cliente]] y [[servidor]] es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de [[servidor]]es incluyen los servidores [[web]], los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.


Una disposición muy común son los ''sistemas multicapa'' en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes '''[[computador]]as''' aumentando así el grado de distribución del sistema.
grado de distribución del sistema.


La ''arquitectura cliente-servidor'' sustituye a la ''arquitectura monolítica'' en la que no hay distribución, tanto a nivel físico como a nivel lógico.
La ''arquitectura cliente-servidor'' sustituye a la ''arquitectura monolítica'' en la que no hay distribución, tanto a nivel físico como a nivel lógico.

Revisión del 04:25 3 sep 2009

Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa -el servidor- que le da respuesta. Aunque esta idea se puede aplicar a programas que se ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario distribuido a través de una red de computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el grado de distribución del sistema.

La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay distribución, tanto a nivel físico como a nivel lógico.

Características

Características de un cliente

En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus características son:

  • Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación (dispositivo maestro o amo).
  • Espera y recibe las respuestas del servidor.
  • Por lo general, puede conectarse a varios servidores a la vez.
  • Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica de usuario.

Al receptor de la solicitud enviada por cliente se conoce como servidor. Sus características son:

  • Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación (dispositivo esclavo).
  • Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
  • Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado).
  • No es frecuente que interactúen directamente con los usuarios finales.

Comparación de la arquitectura C/S con otras arquitecturas de red

Comparación con las redes de pares

Las redes de pares, también conocidas como redes par-a-par o peer-to-peer (abreviado con las siglas P2P) son otro tipo de arquitectura de red; en ellas cada nodo o elemento del sistema puede actuar al mismo tiempo como cliente y como servidor; cada nodo tiene, por tanto, las responsabilidades y estados de ambos elementos.

Comparación con la arquitectura Cliente-Cola-Cliente

Si bien la clásica arquitectura C/S requiere uno de los puntos terminales de comunicación para actuar como un servidor, que puede ser algo más difícil de aplicar, la arquitectura Cliente-Cola-Cliente habilita a todos los nodos para actuar como clientes simples, mientras que el servidor actúa como una cola que va capturando las peticiones de los clientes (un proceso que debe pasar sus peticiones a otro, lo hace a través de una cola, por ejemplo, una consulta a una base de datos, entonces, el segundo proceso conecta con la base de datos, elabora la petición, la pasa a la base de datos, etc.). Esta arquitectura permite simplificar en gran medida la implementación de software. la arquitectura P2P originalmente se basó en el concepto "Cliente-Cola-Cliente".

Arquitectura multi-capas

La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como arquitecturas de dos niveles o dos capas.

Algunas redes disponen de tres tipos de nodos:

  • Clientes que interactúan con los usuarios finales.
  • Servidores de aplicación que procesan los datos para los clientes.
  • Servidores de la base de datos que almacenan los datos para los servidores de aplicación.

Esta configuración se llama una arquitectura de tres-capas.

  • Ventajas de las arquitecturas n-capas:
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso ocurre para mejorar el balance la carga en los diversos servidores; es más escalable.
  • Desventajas de las arquitecturas de la n-capas:
  • Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
  • Es mucho más difícil programar y probar el software que en arquitectura de dos niveles porque tienen que comunicarse más dispositivos para terminar la transacción de un usuario.

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. Esta centralización también facilita la tarea de poner al día datos u otros recursos (mejor que en las redes P2P).
  • Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores).
  • Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán mínimamente). Esta independencia de los cambios también se conoce como encapsulación.
  • Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que aseguran la seguridad en las transacciones, la amigabilidad del interfaz, y la facilidad de empleo.

Desventajas

  • La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo servidor, puede ser que cause muchos problemas para éste (a mayor número de clientes, más problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de servidor, cuanto más nodos hay, mejor es el ancho de banda que se tiene.
  • El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar consiguiendo datos del resto de los nodos en la red.
  • El software y el hardware de un servidor son generalmente muy determinantes. Un hardware regular de un ordenador personal puede no poder servir a cierta cantidad de clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste.
  • 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 o imprimir directamente sobre las impresoras sin sacar antes la ventana previa de impresión de los navegadores.

Dirección

Los métodos de dirección en ambientes del servidor de cliente se pueden describir como sigue:

  • Dirección del proceso de la máquina: la dirección se divide como proceso@máquina. Por lo tanto 56@453 indicaría el proceso 56 en la computadora 453.
  • Servidor de nombres: los servidores de nombres tienen un índice de todos los nombres y direcciones de servidores en el dominio relevante.
  • Localización de Paquetes: Los mensajes de difusión se envían a todas las computadoras en el sistema distribuido para determinar la dirección de la computadora de la destinación.
  • Comerciante: Un comerciante es un sistema que pone en un índice todos los servicios disponibles en un sistema distribuido. Una computadora que requiere un servicio particular comprobará con el servicio que negocia para saber si existe la dirección de una computadora que proporciona tal servicio.

Ejemplos

Visitar un sitio web es un buen ejemplo de la arquitectura cliente/servidor. El servidor web sirve las páginas web al navegador (el cliente). La mayoría de los servicios de Internet son tipo de servidores. Por ejemplo, si estás leyendo este artículo en Wikipedia, la computadora y el navegador web serían considerados un cliente, y las computadoras, las bases de datos, y los usos que componen Wikipedia serían considerados el servidor. Cuando tu navegador web solicita un artículo particular de Wikipedia, el servidor de Wikipedia encuentra toda la información requerida para exhibir el artículo en la base de datos de Wikipedia, la monta en una página web considerada como interfaz gráfica, y la envía de nuevo a tu navegador web.

Otro ejemplo seria un juego online, el numero de servidores depende del juego pero supongamos que tienen 2, cuando tu lo descargas y lo instalas tienes un cliente, si tienes solo un computador en casa y juegan 3 personas, existen un cliente, 3 usuarios y 2 servidores pero depende de ti a cual te conectas, si cada uno instala el juego en sus propios ordenadores, serian 3 clientes, 3 usuarios y 2 servidores.

Cooperación cliente-servidor

Chained Server

En esta clasificación de servidores se encuentran aquellos que de vez en cuando se comportan como clientes, ya sea de manera efímera o por mucho tiempo.

Temporal

Son servidores que por motivos de gestión o para ejecutar cierta parte del proceso de transacción, se comportan como clientes ya sea para solicitar la información requerida al servidor correspondiente o simplemente como un enlace hacia el "destino" de la petición. Sólo realiza la transacción solicitada y vuelve a sus estado normal una vez terminada la misma. ejem: serv

Largo Plazo

Aquellos en los cuales realiza varias transacciones del por mucho más tiempo que la anterior, y se orienta más a la aplicación para la que fue dirigida.ejem: serv. de WEB, etc.

Multiple Server

Para que un proceso se realice de la mejor manera, es preferible utilizar terminales distintos realizando la misma tarea, a centralizar los recursos y que con más hardware/software se realice la misma tarea. Con la ejecución de múltiples servidores el procesamiento es más rápido, el tiempo de respuesta es descentralizado y se incrementa la confiabilidad.

Cooperación de procesos paralelos

El mismo proceso se ejecuta simultáneamente (sistemas redundantes).

Cooperación de base de datos

Si se requiere de cierta información ya existente, por qué crearla de nuevo, simplemente interactúa y aprovecha la información ya creada.

Véase también