Paradigma cliente/servidor

De inforWiki
Saltar a: navegación, buscar

PARADIGMA CLIENTE-SERVIDOR

Lo podemos definir como un patrón arquitectónico para el desarrollo de sistemas distribuidos. Este tipo de arquitectura distribuye una aplicación entre 2 o más componentes especializados cuya ejecución se distribuye entre 1 o más equipos. Define dos tipos de entidades diferenciadas (asimétricas) que se responsabilizan de acciones diferentes: clientes y servidores con roles distintos.

Un modelo de interacción que se basa en el concepto de servicio implementado sobre un diálogo:[1].

Arquitectura cliente Servidor.jpg

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.


Cliente (parte activa):

Demanda servicios a los servidores. Se asume que cada petición deberá obtener respuesta. Diseñado para soportar la interacción con el usuario final.

Servidor (parte pasiva):

Espera las peticiones de los clientes. Procesa esas peticiones y envía una respuesta. Diseño orientado a maximizar la eficiencia.


APLICACIONES CLIENTE-SERVIDOR

Esta arquitectura consiste básicamente en que un programa, informático realiza peticiones a otro programa, servidor, que les da respuesta en esta arquitectura la capacidad de proceso esta repartida entre los clientes y los servidores, aunque son mas 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 clarifica el diseño del sistema.

VENTAJAS:

  • Centralización del control
  • Escalabilidad

DESVENTAJAS:

  • La congestión del trafico siempre ha sido un problema desde el primer día del paradigma cliente/servidor.
  • El paradigma C/S no tiene la buena robustez como red del P2P.
  • El software y el hardware de un servidor son generalmente muy terminantes.

CARACTERÍSTICAS DE UN SERVIDOR

  • Voz pasiva (esclavo)
  • Espera para las peticiones
Imagesestructura.jpg
  • Procesar peticiones y entonces los servicios son contestados

'CARACTERÍSTICAS DE UN CLIENTE'

  • Activo (amo)
  • Envía peticiones
  • Espera y reciben las contestaciones del servidor.


== ARQUITECTURA == „ La arquitectura C/S es una forma de dividir y especializar programas y equipos de cómputo de forma que la tarea que cada uno de ellos realiza se efectúa con la mayor eficiencia posible y permita simplificar las actualizaciones y mantenimiento del sistema. CAMBIO DE PARADIGMA „ 1ª Revolución: Cliente – servidor

  • Del Mainframe a los sistemas C/S

…

  • Detonante: desarrollo HW, LAN

…*Resultado Mainframe- > C/S „ 2ª Revolución:: Objetos distribuidos:

…* Fragmentación del cliente y servidor en componentes

  • … Detonante: desarrollo HW, WAN, Internet

…* Resultado C/S -> Sistemas 3 niveles o multinivel

„ Consecuencias para desarrolladores de los SI …

  • Incertidumbre.
  • …De sistemas propietarios a sistemas “a la carta”.

…*Necesidad de conocer gran número de tecnologías.

El Sistema de Información moderno y el modelo Cliente/Servidor „ El Sistema de Información moderno

…*Administra y despliega grandes redes …*Ofrece estándares de interoperabilidad …*Distribuye sus funcionalidades …*Saca partido del modelo Cliente/Servidor …*Muchas veces requiere habilidades híbridas „*Procesamiento de transacciones, bases de datos,comunicaciones o conocimientos sobre GUI.

Install.jpg



PRIVILEGIOS Y COMPLEJIDAD

Debido a que los servidores a menudo tienen la necesidad de acceder a datos, funciones, o puertos que el sistema operativo protege, el software servidor suele precisar de privilegios del sistema especiales para poder realizar la tarea para la cual ha sido creado. Como consecuencia de esto se tiene mucho cuidado para evitar que los privilegios concedidos al servidor son aprovechados por los clientes para obtener permisos especiales. Por ejemplo, un servidor de ficheros que se ejecuta como un programa privilegiado debe contener código para verificar si un cliente dado tiene permisos para acceder a un fichero en concreto. El servidor no puede relegar esta función sobre el sistema operativo, ya que su estado privilegiado le sitúa, en ciertos aspectos concretos, por encima del sistema.

Los programas servidores deben contener código que maneje situaciones de :

Autenticación - Verificar la identidad del cliente. Autorización - Determinar si un cliente dado posee permisos para acceder al servicio que suministra. Seguridad de datos - Garantizar que la información no es revelada, de manera no intencionada, a clientes sin autorización. Privacidad - Preservar la información de un usuario de accesos no autorizados. Protección - Garantizar que las aplicaciones de red no puedan abusar de los recursos del sistema. Los servidores que realizan un intensivo uso de la potencia del procesador o que manejan grandes volúmenes de información operan más eficientemente si manejan las solicitudes de servicio concurrentemente. La combinación de privilegios especiales y ejecución concurrente, por norma general, hace que los servidores sean más difíciles de diseñar e implementar que los clientes.

Como ejemplo de lo expuesto en esta sección vamos a ver como se configuraría un software servidor de FTP, teniendo en cuenta los consideraciones relativas a seguridad que el empleo de dicho software conlleva.