Los departamentos de informtica y empresas de desarrollo tienen que decidir, a la hora de planificar la creacin de una nueva aplicacin, cul de los modelos posibles quiere utilizar. Evolucin de las aplicaciones informticas
Necesidades a cubrir: Trabajo a distancia. Compartir informacin. Accesibilidad. Seguridad en la proteccin de la informacin (tener la base de datos particionada en dos o ms nodos). Independencia lugares. Cualquier aplicacin actual cuenta generalmente con tres partes diferenciadas: Una interfaz de usuario. Elemento con el que interacciona el usuario de la aplicacin, ejecutando acciones, introduciendo u obteniendo informacin. Lgica o Reglas de negocio. Son las que procesan la informacin para generar los resultados que persiguen, siendo el elemento fundamental que diferencia unas aplicaciones de otras. Gestin de datos. Se ocupa del almacenamiento y recuperacin de la informacin.
2
APLICACIONES MONOLITICAS En una aplicacin monoltica las tres partes forman un todo y se ejecutan en la misma mquina.
Ejemplo: Resulta caro y los costos de mantenimiento son tambin altos. Una aplicacin monoltica duplica en cada computadora todos sus elementos: interfaz de usuario, lgica o reglas de negocio y acceso a datos.
APLICACIONES CLIENTE-SERVIDOR TCP es un protocolo orientado a conexin. No hay relaciones maestro/esclavo. Las aplicaciones, sin embargo, utilizan un modelo cliente/servidor en las comunicaciones. Cliente. Se le representa por un software de aplicacin 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 travs de internet por un protocolo que ellos mismos definen.
3
APLICACIONES 2,3 Y N CAPAS En la actualidad existen tres tipos de arquitecturas de capas, y que muchas veces estas capas reciben el nombre de niveles. Las arquitecturas son las siguientes: Arquitectura de dos capas. Arquitectura de tres capas. Arquitectura de cuatro capas. APLICACIONES EN DOS CAPAS Las capas que esta arquitectura presenta son las siguientes: Nivel de presentacin y lgica; Nivel de la base de datos. El nivel de aplicacin. 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 tambin es llamado el Repositorio de Datos, es la capa en donde se almacena toda la informacin ingresada en el sistema y que se deposita en forma transparente.
APLICACIONES EN TRES CAPAS Nivel Aplicacin. La diferencia de este nivel aplicado en una arquitectura de tres capas es que solo tiene que trabajar con la semntica propia de aplicacin, sin tener que preocuparse de cmo esta implementado este ni de su estructura fsica. Dominio de la aplicacin. En cambio este nivel se encarga de toda la estructura fsica y el dominio de aplicacin. Algo muy importante y que es la mayor ventaja de esta arquitectura es que ahora nicamente se cambia la regla en el servidor de aplicacin y sta actuara en todos los clientes, cosa que ni suceda con la arquitectura en dos capas que si alguna regla se le cambia, se tenia que ir a cada cliente a realizar el cambio. Nivel Base de datos. En realidad este nivel no ha cambiado para nada y sigue siendo la capa en donde se almacenan los datos y toda la informacin. Utiliza el UML que es el lenguaje unificado para la elaboracin de aplicaciones.
4
APLICACIN EN N-CAPAS Ventajas del modelo: Desarrollo paralelo (en cada capa). Aplicaciones ms robustas debido al encapsulamiento. Mantenimiento y soporte ms sencillo (es ms sencillo cambiar un componente que modificar una aplicacin monoltica).
NO CONFUNDIR Algo que se tiene que dejar claro es que no podemos confundir una aplicacin distribuida con un sistema distribuido. APLICACIN DISTRIBUIDA Es una aplicacin con distintos componentes que se ejecutan en entornos separados normalmente en diferentes plataformas conectadas a travs de una red. Ejemplo: Navegador web Las tpicas aplicaciones distribuidas son de dos niveles (cliente-servidor), tres niveles (cliente- middleware-servidor) y multinivel. Middleware. Sistema distribuido organizado con un sistema. UN SISTEMA DISTRIBUIDO se define como una coleccin de computadoras autnomas conectadas por una red, con el software distribuido adecuado para que el sistema sea visto por los usuarios como una nica entidad capaz de proporcionar facilidades de computacin. Ejemplo: Google BASE DE DATOS DISTRIBUIDA: Una coleccin lgicamente interrelacionada de datos compartidos junto con una descripcin de estos datos fsicamente distribuidos por una red informtica. SGBDD: El sistema software que permite gestionar la base de datos distribuida y hace que dicha distribucin sea transparente para los usuarios. Los SGBDD pueden clasificarse como homogneos o heterogneos.
5
Los SGBDD HOMOGENEOS En un sistema homogneo todos los nodos utilizan el mismo SGBD. En un sistema heterogneo, los nodos pueden estar ejecutando diferentes SGBD, los cuales no tienen por qu estar basados en un mismo modelo de datos subyacente, de modo que el sistema puede estar compuesto de diversos SGBD relacionales, en red, jerrquicos u orientados a objetos. Los sistemas homogneos son mucho ms fciles de disear y mantener. Esta tcnica permite el crecimiento incremental, haciendo que la adicin de un nuevo nodo al SGBDD sea sencilla, y tambin permite conseguir unas mayores prestaciones, al aprovechar las capacidades de procesamiento paralelo de los mltiples nodos. Los SGBDD HETEROGENEOS: Los sistemas heterogneos suelen crearse cuando los nodos individuales han implementado por su cuenta sus propias bases de datos y la integracin de los nodos se pone en marcha en una fase posterior. En un sistema heterogneo, se requiere una cierta labor de traduccin para que los distintos SGBD puedan comunicarse entre s. Para proporcionar un cierto grado de transparencia con respecto al SGBD, los usuarios deben poder realizar las solicitudes en el lenguaje del SGBD que utilicen en su nodo local. El sistema deber entonces encargarse de localizar los datos y de realizar toda la labor de traduccin necesaria. Puede darse la situacin que el usuario solicite datos de otro nodo que tenga: -un hardware diferente (pero el mismo SGBD 1.2 Evolucin de las tecnologas para el desarrollo de aplicaciones distribuidas La evolucin de las aplicaciones distribuidas se dio de la siguiente forma: De interfaz de usuario. De aplicacin. De base de datos. De comunicacin de datos. De conexin entre capas.
DE INTERFAZ DE USUARIO. En el contexto del proceso de interaccin persona computadora, la interfaz grafica de usuario, es el artefacto tecnolgico de un sistema interactivo que posibilita, a travs del uso y la representacin del leguaje visual, una interaccin amigable con un sistema informtico. La interfaz grfica de usuario (en ingles graphical user interface, GUI) es un tipo de interfaz de usuario que utiliza un conjunto de imgenes y objetos grficos para representar la informacin y acciones disponibles en la interfaz. Habitualmente las acciones se realizan mediante manipulacin directa para facilitar la interaccin del usuario con la computadora. DE APLICACIN La adopcin de un diseo distribuido de aplicaciones empresariales, aumenta la reusabilidad, reduce la cantidad de recursos, y los costos necesarios de desarrollo y mantenimiento. Este nuevo enfoque de diseo pone en manos de los desarrolladores no solo la funcionalidad que demandan las aplicaciones, sino tambin la seguridad, rapidez y flexibilidad. 6
DE BASES DE DATOS. La evolucin de las bases de datos distribuidas se debe por una parte a razones organizacionales las cuales han demandado que mayores capacidades sean incorporadas a las bases de datos, tales como la integracin de informacin desde distintos sitios donde se encuentre la empresa distribuida hacia algn sitio por ejemplo, para una consulta. Algunas tecnologas de base de datos son: OLEB ADO SQL Herramientas para modelado (UML). DE COMUNICACIN DE DATOS. La construccin de aplicaciones distribuidas ha emergido como la arquitectura predominante para la construccin de aplicaciones multiplataforma en la mayor parte de las empresas. Algunas tecnologas de comunicacin de datos son: Intranet. Internet. DE CONEXIN ENTRECAPAS. Como tecnologa, las arquitecturas de capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cabios constantes.
1.3 Escenarios de utilizacin de las Aplicaciones distribuidas.