Desarrollo de aplicaciones para ambientes distribuidos Panorama general de las aplicaciones distribuidas L.I. Ramiro Robles Villanueva
Objetivo de la Unidad El estudiante reconocerá la evolución, características y la naturaleza de las aplicaciones distribuidas.
Contenido de la Unidad 1.1 Evolución de las aplicaciones informáticas. 1.1.1 Aplicaciones monolíticas. 1.1.2 Aplicaciones cliente/servidor. 1.1.3 Aplicaciones de 2,3 y n capas. 1.1.4 Aplicaciones distribuidas. 1.2 Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas. 1.2.1 De interfaz de usuario. 1.2.2 De aplicación. 1.2.3 De base de datos. 1.2.4 De comunicación de datos. 1.2.5 De conexión entre capas. 1.3 Escenarios de utilización de las aplicaciones distribuidas. 1.4 Problemas comunes en el desarrollo y uso de aplicaciones distribuidas.
¿Qué es una aplicación distribuida?
Modelos de aplicaciones Los departamentos de informática y empresas de desarrollo tienen que decidir, a la hora de planificar la creación de una nueva aplicación, cual de los modelos posibles quiere utilizar.
Evolución de las aplicaciones informáticas Aplicaciones Distribuidas Aplicaciones monolíticas Aplicaciones cliente/servidor Aplicaciones de 2, 3 y n capas Evolución de las aplicaciones Informáticas
Necesidades a cubrir Trabajo a distancia Compartir información Accesibilidad Seguridad en la protección de la información (tener la base de datos particionada en dos o mas nodos) Independencia lugares
Cualquier aplicación actual cuenta generalmente con tres partes diferenciadas: Una interfaz de usuario: Elemento con el que interacciona el usuario de la aplicación, ejecutando acciones, introduciendo u obteniendo información. Lógica ó Reglas de negocio: Son las que procesan la información para generar los resultados que persiguen, siendo el elemento fundamental que diferencia unas aplicaciones de otras. Gestión de datos: Se ocupa del almacenamiento y recuperación de la información.
Aplicaciones Monolíticas En una aplicación monolítica las tres partes forman un todo y se ejecutan en la misma maquina. Ejemplo: Resulta caro y los costos de mantenimiento son también altos. Datos Lógica de negocio Interface de usuario
Aplicación Monolítica Datos Lógica de negocio Interface de usuario Datos Lógica de negocio Interface de usuario Una aplicación monolítica duplica en cada computadora todos sus elementos: interfaz de usuario, lógica o reglas de negocio y acceso a datos.
Aplicación Monolítica Ventajas Desventajas Requieren más y mejor HW en las estaciones de trabajo Son infinitamente más lentos en el procesamiento de peticiones sencillas Ocupan mayor ancho de banda, provocando congestionamiento en la Red Local Requieren habilitar el acceso real a la carpeta de datos para todos los usuarios de la aplicación Su actualización es más costosa No permiten el acceso en línea desde fuera de la Red Local ó requieren de implementaciones de soluciones de conectividad muy costosas Funcionan mas rápido. Fácil de desarrollar. difícil de mantener, poco escalable y que Precisa de cierta potencia de proceso.
Aplicaciones cliente/servidor Cliente Se le representa por un software de aplicación y lo utilizan los usuarios de Internet para acceder a un determinado servicio. Servidor En cambio un servidor tiene un software de servidor que lo utiliza para ofrecer al cliente toda la funcionalidad utilizada por el cliente. El cliente y el servidor se comunican a través de Internet por un protocolo que ellos mismos definen.
Cliente / Servidor HTTP
Aplicaciones en dos capas Presentación y Lógica Datos
Aplicaciones en tres capas Presentación Lógica Datos
¿Aplicación de n capas?
Evolución de las tecnologías para el desarrollo de aplicaciones distribuidas De Interfaz de usuario
Evolución De bases de datos
Escenarios de utilización de las aplicaciones distribuidas Educación a distancia Moodle Creación de Blogs Wordpress Creador de wikis MediaWiki Administrar BD en web PHPMyAdmin PHP E-commerce eCAM E-commerce ProdMentor Sistemas de Postales Easy Post Card Chats Adrenalin Labs ASP
Ejemplos de aplicaciones Distribuidas
problemas comunes en el desarrollo y uso de aplicaciones distribuidas Disponibilidad de los servidores. Acceso a los sistemas de manera remota. Posibilidad de que pueden ser vistos (pero no accesados) por muchas personas. Capacidad de los equipos donde se almacenan las fuentes.
Por su atención. Gracias!!!