Departamento de Lenguajes y Sistemas Informticos Arquitectura cliente/servidor Programacin en Internet Curso 2007-2008 Programacin en Internet Curso 2007-2008 ndice Introduccin Tipos de servidores Ventajas Desventajas Arquitectura de una aplicacin de n-capas Separacin de funciones Separacin de funciones Modelos de distribucin Tecnologas de programacin distribuida Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 2 Programacin en Internet Curso 2007-2008 Introduccin Arquitectura de desarrollo de aplicaciones Ordenador: cliente (solicita) o servidor Ordenador: cliente (solicita) o servidor (responde) Se refiere a una transaccin en particular (un ordenador puede adoptar los dos papeles, pero en transacciones distintas) Comunicacin: protocolo Punto a punto (peer-to-peer) o red entre p (p p ) iguales (o pares) Cada miembro de la red tiene responsabilidades similares Programacin en Internet Curso 2007-2008 Introduccin Se puede aplicar a programas que se ejecutan en un mismo ordenador ejecutan en un mismo ordenador Es ms ventajoso para aplicaciones distribuidas a travs de una red de ordenadores Diferentes requisitos para el cliente y el servidor: velocidad de procesamiento, memoria, capacidad de almacenamiento de , p datos, etc. Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 3 Programacin en Internet Curso 2007-2008 Introduccin Clientes: inteligentes (rich, fat o thick client) o simples (thin o lean client) El software de la parte cliente se conoce como front-end Inicia la peticin Espera y recibe la respuesta del servidor Espera y recibe la respuesta del servidor Se puede conectar a un grupo de servidores de forma simultnea Ofrece un interfaz grfico (entorno amigable) al usuario final Programacin en Internet Curso 2007-2008 Introduccin Wyse Winterm3200LE IBM 3151 Terminal Wyse Winterm 3200LE Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 4 Programacin en Internet Curso 2007-2008 Introduccin Servidor El software de la parte servidor se conoce como back-end Pasivo Espera las peticiones de los clientes Cuando recibe una peticin, la procesa y devuelve una respuesta una respuesta Normalmente acepta un gran nmero de conexiones simultneas de los clientes No interacciona directamente con los usuarios finales Programacin en Internet Curso 2007-2008 Introduccin La interaccin entre el cliente y el servidor se suele modelar mediante diagramas de secuencia de UML Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 5 Programacin en Internet Curso 2007-2008 Programacin en Internet Curso 2007-2008 Tipos de servidores Servidor de ficheros Servidor de impresoras Servidor de red Servidor de bases de datos Servidor de aplicaciones Servidor de servicios de Internet (web, FTP, correo, etc.) Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 6 Programacin en Internet Curso 2007-2008 Ventajas (I) Distribucin de aplicaciones: concurrencia de procesos Permite emplear entornos heterogneos y multivendedor: la plataforma no tiene por qu ser la misma (se comunican a travs de un API conocido) P t bilid d Portabilidad Acceso independiente del lugar fsico: empleo de un cliente ligero con requisitos mnimos de instalacin Programacin en Internet Curso 2007-2008 Ventajas (II) Escalabilidad: La capacidad del sistema informtico de cambiar su tamao o configuracin para adaptarse a las circunstancias cambiantes Un sistema es escalable si al incrementar los recursos empleados (por ejemplo, n procesadores), el rendimiento crece i l proporcionalmente Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 7 Programacin en Internet Curso 2007-2008 Ventajas (III) Escalabilidad horizontal (scale out) Programacin en Internet Curso 2007-2008 Ventajas (y IV) Escalabilidad vertical (scale up) Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 8 Programacin en Internet Curso 2007-2008 Desventajas Aumenta la comunicacin (congestin trfico de red) Falta de robustez (cada del servidor) Programacin en Internet Curso 2007-2008 Arquitectura de una aplicacin de n capas N capas (n-tiers): separar los componentes de una aplicacin en n niveles o capas de una aplicacin en n niveles o capas lgicas Cualquier nmero de capas Lo ms comn: 1 (aplicacin monoltica), 2 y 3 No implica separacin fsica en distintos No implica separacin fsica en distintos ordenadores (aunque es lo normal): una aplicacin de 3 capas puede existir en un nico ordenador Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 9 Programacin en Internet Curso 2007-2008 Ventajas Permite modificar una capa sin tener que difi t d l li i modificar toda la aplicacin Aplicacin 1 capa: existe un gran acoplamiento en la aplicacin Simplifica la administracin de los sistemas Disponibilidad inmediata de cambios en la lgica de aplicacin o datos lgica de aplicacin o datos Posibilita el balanceo de la carga de trabajo entre distintos ordenadores Programacin en Internet Curso 2007-2008 Lgica de presentacin Separacin de funciones (I) Lgica de presentacin Lgica de negocio (aplicacin) Lgica de datos Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 10 Programacin en Internet Curso 2007-2008 Separacin de funciones (y II) Lgica de presentacin: Interfaz de usuario a travs del cual interacciona con la aplicacin Interfaz grfico (GUI) o basado en texto Lgica de negocio: El ncleo de la aplicacin Implementa la funcionalidad de la aplicacin Implementa la funcionalidad de la aplicacin Lgica de datos: Gestiona la persistencia de los datos Asegura su persistencia, integridad y disponibilidad Programacin en Internet Curso 2007-2008 Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 11 Programacin en Internet Curso 2007-2008 Modelos de distribucin Presentacin distribuida: solo una interfaz con validacin de datos Cliente Servidor Aplicacin distribuida: mxima flexibilidad Presentacin Lgicade Presentacin Lgicade Negocio Lgicade datos Gestin de datos Servidor Lgicade Negocio Lgicade datos Gestin de datos Cliente Presentacin Lgicade Presentacin Lgicade Negocio Datos distribuidos: mxima carga en el cliente y mayor ancho de banda Negocio datos datos Presentacin Negocio Servidor Lgicade datos Gestin de datos Cliente Presentacin Lgicade Presentacin Lgicade Negocio Programacin en Internet Curso 2007-2008 Dos y tres capas Sistema de dos niveles o capas: Todos los casos anteriores Todos los casos anteriores Un cliente y un servidor con la lgica de negocio y de datos Sistema de tres niveles o capas: Un cliente con la lgica de presentacin Un servidor o servicio con la lgica de negocio Un segundo servidor o servicio con la lgica de datos Ventajas: mayor independencia, portabilidad y escalabilidad Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 12 Programacin en Internet Curso 2007-2008 Tecnologas de programacin distribuida (I) Diversas tecnologas que permiten a un programa que se ejecuta en un ordenador ejecutar cdigo que que se ejecuta en un ordenador ejecutar cdigo que reside en otro ordenador RPC (Remote Procedure Call) Estndar de Internet (RFC 1831) basado en TCP/IP Ejemplo de aplicacin: NFS (Network File System), que permite acceder a sistemas de ficheros situados en otros ordenadores de forma transparente RMI (Remote Method Invocation) RMI (Remote Method Invocation) Conjunto de protocolos desarrollados por Sun Microsystems Exclusivo para J ava Permite que un objeto desarrollado con J ava se comunique remotamente con otro objeto basado en J ava Programacin en Internet Curso 2007-2008 Tecnologas de programacin distribuida (II) CORBA (Common Object Request Broker Architecture)) Arquitectura desarrollada por OMG (Object Management Group) Comunicacin remota entre objetos independientemente del lenguaje de programacin con el que han sido desarrollados o del sistema operativo en el que se ejecutan DCOM (Distributed Component Object Model) Extensin de COM desarrollada por Microsoft Permite a los componentes COM comunicarse de forma p remota Basado en RPC Permite la comunicacin entre objetos desarrollados con distintos lenguajes de programacin, pero su empleo se encuentra limitado a Microsoft Windows Programacin en Internet 2007-2008 DLSI - Universidad de Alicante 13 Programacin en Internet Curso 2007-2008 Tecnologas de programacin distribuida (y III) Servicios web Desarrollado por OASIS y W3C Desarrollado por OASIS y W3C La interoperabilidad se consigue mediante la adopcin de estndares abiertos Basado en XML: SOAP, WSDL y UDDI