Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido 1.1. Grupo 6751 Cliente servidor ¿Qué es cliente servido? La expresión cliente servidor se utiliza en el ámbito de la informática. En dicho contexto, 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. El concepto de cliente servidor, o cliente-servidor, refiere por lo tanto a un modelo de comunicación que vincula a varios dispositivos informáticos a través de una red. El cliente, en este marco, realiza peticiones de servicios al servidor, que se encarga de satisfacer dichos requerimientos. Con esta arquitectura, las tareas se distribuyen entre los servidores (que proveen los servicios) y los clientes (que demandan dichos servicios). Dicho de otro modo: el cliente le pide un recurso al servidor, que brinda una respuesta. Este tipo de modelos permite repartir de la capacidad de procesamiento. El servidor puede ejecutarse sobre más de un equipo y ser más de un programa. De acuerdo a los servicios que brinda, se lo puede llamar servidor web, servidor de correo o de otro modo. En las redes estructuradas bajo el modelo cliente servidor, los clientes centralizan diferentes aplicaciones y recursos en el servidor. El servidor, a su vez, se encarga de que estos recursos estén disponibles cada vez que un cliente los requiere. Es importante mencionar que gran parte de los servicios de Internet obedecen a la arquitectura cliente servidor. El servidor web pone a disposición del cliente los sitios web, a los cuales el cliente accede a través de su navegador. El servidor, de esta manera, aloja los datos que el cliente solicita mediante el navegador instalado en su computadora. Uno de los ejemplos más “antiguos” en este contexto es el correo electrónico, que demuestra a cada segundo de su funcionamiento los principios del modelo cliente servidor. En este caso, el cliente envía y recibe mensajes que “viajan” a través de redes de comunicación, y éstos se alojan en “buzones” cuyo nombre técnico es servidores de correo. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 A diferencia de lo que ocurre fuera de la informática, en el ámbito del correo tradicional, el usuario no abre un buzón material para mirar dentro de él si hay cartas o paquetes, sino que debe solicitar a un servidor (normalmente remoto) que verifique la presencia de nuevos mensajes y le envíe una respuesta con el resultado. Cada acción se apoya en esta relación, de manera que el equipo del cliente no es autosuficiente. Entre las disposiciones más comunes del modelo cliente servidor se encuentran los sistemas multicapa, según los cuales el servidor ofrece la ejecución de varios programas para que varios ordenadores puedan solicitarlos según sus necesidades, de manera que el nivel de distribución aumenta. Una de las ventajas menos aparentes de la organización en servidores y clientes es que la capacidad de procesamiento y memoria de estos últimos no debe ser tan grande como la de los primeros, lo cual beneficia al consumidor final permitiéndole usar un equipo relativamente antiguo para disfrutar de servicios generalmente muy avanzados. Por ejemplo, a pesar de que el correo electrónico parezca una “aplicación” muy liviana y sencilla, los servidores deben almacenar volúmenes colosales de datos para satisfacer a todos sus clientes, y, por consiguiente, realizar búsquedas y consultas muy demandantes para responder a todas sus solicitudes. Cuando buscamos un término en nuestra casilla para dar con un mensaje en particular, el servidor debe revisar cientos o miles de archivos, y lo hace en una fracción de segundo, algo que sería imposible en nuestros hogares. Los sistemas de streaming de videojuegos para usarlos a distancia son otro ejemplo, en este caso mucho más exigente que el correo electrónico, ya que el cliente puede disfrutar de un programa de última generación en tiempo real con un ordenador que simplemente le permita recibir el vídeo de forma fluida y enviar los eventos de su mando, teclado y ratón. Ejemplo de cliente servidor Una aplicación de fraces Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 Donde en cliente ingresa una flace y la sube se guarde en un servidor que se utiliza androi studio y mysql, el servidor. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido 1.2. Grupo 6751 Modelos de dos y tres capas Definición Arquitecturas C/S de dos capas El cliente se comunica directamente con un servidor de bases de datos La aplicación o lógica de negocio bien reside en el cliente, o en el servidor de base de datos en la forma de procedimientos almacenados Un primer modelo C/S de dos capas comenzó a emerger con las aplicaciones desarrolladas para redes LAN a finales de los 80 y principios de los 90 • Estas aplicaciones se basaban en técnicas sencillas de compartición de archivos, implementadas mediante lenguajes del tipo Xbase (Xbase se refiere genéricamente a los lenguajes derivados a partir del lenguaje de dBase: dBase, FoxPro, Clipper, Paradox, etc.) ARQUITECTURA CLIENTE/SERVIDOR (DOS CAPAS) La arquitectura tradicional de cliente/servidor también es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y se ejecuta en una PC o estación de trabajo y envía solicitudes a un servidor para ejecutar operaciones complejas. Por ejemplo, una estación de trabajo utilizada como cliente puede ejecutar una aplicación de interfaz de usuario que interroga a un servidor central de ases de datos. Ventajas del Sistema de Dos Capas: Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 El desarrollo de aplicaciones en un ambiente de dos capas funciona adecuadamente, pero no es necesariamente lo más eficiente. Las herramientas para el desarrollo con dos capas son robustas y amplia mente evaluadas. Las técnicas de ingeniería de software de prototipo se emplean fácilmente. Las soluciones de dos capas trabajan en en ambientes no dinámicos, pero no se ejecutan bien en organizaciones rápidamente cambiantes. Desventajas del sistema de dos capas: Los ambientes de dos capas requieren control excesivo de las versiones y demandan esfuerzo de distribución de la aplicación cuando se les hacen camios. Esto se ve al hecho de que la mayoría de la aplicación lógica existe en la estación de trabajo del cliente. La seguridad del sistema en un diseño de dos capas es compleja y a menudo requiere administración de las bases de datos; esto es debido al número de dispositivos con acceso directo al ambiente de esas bases de datos. Las herramientas del cliente y de la base de datos, utilizadas en diseños de dos capas, constantemente están cambiando. La dependencia a largo plazo de cualquier herramienta, puede complicar el escalamiento futuro o las implementaciones. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 Arquitecturas C/S de tres capas Una generación más novel de la arquitectura C/S añade una capa intermedia (middle tier) En la arquitectura de tres capas (en general, en la arquitectura multicapa) el cliente implementa la lógica de presentación (cliente “fino”), el servidor(es) de aplicación implementan la lógica de negocio y los datos residen en uno (o varios) servidor(es) de bases de datos Una arquitectura multicapa se define por tanto por las siguientes tres capas de componentes: • Un componente front-end que es el responsable de proporcionar la lógica de presentación • Un componente back-end que proporciona acceso a servicios dedicados, tales como un servidor de bases de datos • Un componente que hace las funciones de capa intermediaria (middletier) que permite a los usuarios compartir y controlar la lógica de negocio mediante su aislamiento de la aplicación real Aplicaciones de 2,3 y n capas. Es la aplicación donde la interfaz, la lógica del negocio, el acceso a los datos y los datos se encuentran separados. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 El modelo n−tier (n−capas) de informática distribuida ha emergido como la arquitectura predominante para la construcción de aplicaciones multiplataforma en la mayor parte de las empresas. 1.Codificar al mismo tiempo Este cambio radical en los modelos de computación, desde los sistemas monolíticos basados en mainframe y los tradicionales sistemas cliente−servidor, hacia sistemas distribuidos multiplataforma altamente modulables, representa simplemente la punta del iceberg de lo que está por llegar en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las últimas tendencias de las grandes empresas de tecnología, como Sun con su estrategia Sun Tone, o Microsoft con DotNET (.Net). Ventajas del modelo Desarrollos paralelos (varios programadores en cada capa) Aplicaciones más robustas debido al encapsulamiento Mantenimiento y soporte más sencillo (es más sencillo cambiar un componente que modificar una aplicación monolítica) Mayor flexibilidad (se pueden añadir nuevos módulos para dotar al sistema de nueva funcionalidad) Alta escalabilidad. La principal ventaja de una aplicación distribuida bien diseñada es su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento simplemente añadiendo más hardware. El crecimiento es casi lineal y no es necesario añadir más código para conseguir esta escalabilidad. Arquitectura lógica “clásica” Presentación Lógica de negocio (Que es lo que hace el sistema) Datos Fuentes de datos La división de aplicaciones en capas, normalmente está compuesta por tres capas: Capa de presentación Capa de negocio Capa de datos Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 Capa de presentación: Presenta el sistema al usuario, comunica la información y captura la información del usuario en un mínimo proceso. Esta capa se comunica únicamente con la capa de negocio. Capa de negocio: Es donde residen los programas que se ejecutan, se reciben peticiones del usuario y se envían las respuestas tras el proceso, es aquí donde se establecen todas las reglas que deben cumplirse, se comunica con la capa de presentación, para recibir solicitudes y presentar los resultados, y con la capa de datos, para solicitar al gestor de base de datos almacenar o recuperar datos. Capa de datos: Es donde residen los datos y es la encargada de acceder a los mismos. Está formada por uno o más gestores de bases de datos que realizan todo el almacenamiento de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio. EJEMPLO: En cualquier red de supermercado, se encuentra conectada en capas, ya que podríamos decir que de una manera pragmática, las cajas de todos los departamentos están conectadas con una interfaz que actuaría como la Capa de Presentación, en esta estaría un cajero realizando las operaciones que estuvieran programadas dentro de sus funciones el ambiente gráfico de la computadora, en este caso sería cobrar los productos, hacer devoluciones, cancelaciones, cobros con tarjetas de crédito, etc. Por otra parte existiría una Capa de Negocio, esta indicaría de qué manera se ejecutaran las funciones propias de la computadora, en este caso se contaría con un servidor que soportara todas las plataformas donde reside el ambiente gráfico, de manera ordenada, para corroborar la secuencia de la orden o petición, esta capa actuaría realizando la petición-servicio, que sería la conexión final. Y por último la Capa de Datos en este caso de igual manera se contaría con un servidor con la información de los productos, así como de los usuarios de cualquier terminal o de cualquier rango. De esta forma podemos darnos cuenta del uso que podemos darle a las aplicaciones por capas que ya son parte de los sistemas orientados a objetos de la actualidad. APLICACIONES DE 2 CAPAS. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas fallas, todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en aprovecharse de la estructura cliente-servidor. Aplicación de dos capas. Las capas que esta arquitectura presenta son las siguientes: • nivel de aplicación este nivel es en el que se encuentra toda la interfaz del sistema y es la que el usuario puede disponer para realizar su actividad con el sistema. • nivel de la base de datos. este nivel de la base de datos también llamado el repositorio de datos, es la capa en donde se almacena toda la información ingresada en el sistema y que se deposita en forma permanente. Existen herramientas para el desarrollo en dos capas por ejemplo visual basic, access y sql. APLICACIONES DE TRES CAPAS La arquitectura de dos capas si bien ayudó en unos años atrás, se vio la necesidad de crear una nueva arquitectura ya que en dos capas se tenía algunos problemas en la capa de aplicación ya que la principal desventaja de esta era el peso que tenia para el cliente, como se mencionó anteriormente. Aplicación de tres capas. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 Por estas razones, existe una fuerte y bien avanzada tendencia a adoptar una arquitectura de tres capas. y es así que se creó la arquitectura de tres capas las cuales son: • Nivel de aplicación la diferencia de este nivel aplicado ahora en una arquitectura de tres capas es que solo tiene que trabajar con la semántica propia de aplicación, sin tener que preocuparse de cómo esta implementado este ni de su estructura física. • Nivel de dominio de la aplicación. En cambio este nivel se encarga de toda la estructura física y el dominio de aplicación. algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora únicamente se cambia la regla en el servidor de aplicación y esta actuará en todos los clientes, cosa que ni sucedía con la arquitectura en dos capas que si alguna regla se la cambia, se tenía que ir a cada cliente a realizar el cambio. • Nivel de repositorio. Sigue siendo la capa en donde se almacenan los datos y toda la información. Las herramientas para el desarrollo de tres capas son: • visual basic en lo que se refiere a la capa de aplicación • sql server en lo que se refiere al repositorio de datos. • mts en lo que se refiere al nivel del dominio de aplicación APLICACIONES DE N CAPAS En una aplicación distribuida en n-capas los diferentes procesos están distribuidos en diferentes capas no sólo lógicas, sino también físicas. los procesos se ejecutan en diferentes equipos, que pueden incluso residir en plataformas o sistemas operativos completamente distintos. cada equipo posee una configuración distinta y está optimizado para realizar el papel que le ha sido asignado dentro de la estructura de la aplicación, de modo que tanto los recursos como la eficiencia global del sistema se optimicen. Nombre: Campos Flores Beatriz Materia: Programación en ambiente cliente/servido Grupo 6751 Aplicación n capas. El surgimiento de la tecnología de componentes distribuidos es la clave de las arquitecturas de n-capas. estos sistemas de computación utilizan un número variable de componentes individuales que se comunican entre ellos utilizando estándares predefinidos y frameworks de comunicación como: • corba: (common object request broker architecture) del object management group (omg). • dna : (distributed network applications) de microsoft (incluye com/dcom y com+ además de mts, msmq, etc. • ejb : (enterprise java beans) de sun microsystems • xml : (extensible markup language) del world wide web consortium (w3 • .net: de microsoft que incluye nuevos lenguajes como visual basic.net, c#.