Redes Informáticas

martes, 2 de diciembre de 2014

Unidad 8 - Aplicaciones Distribuidas



El modelo de aplicaciones distribuidas emplea distintos componentes los cuales se ejecutan en entornos separados, es frecuente que se produzcan en diferentes plataformas conectadas a través de una red. Las aplicaciones distribuidas pueden ser de dos niveles (cliente-servidor), tres niveles (cliente-middleware-servidor) y multinivel.

Componentes de una aplicación distribuida
El modelo cliente-servidor que caracteriza a las aplicaciones distribuidas tienen los siguientes componentes:
  • Lado servidor: Programa que se ejecuta en un computador que está conectado a una red. Está a la escucha en un puerto, esperando las peticiones de los clientes; por ejemplo, un servidor Web escucha en el puerto 80. Un computador que ejecuta un servidor de aplicación necesita estar conectado a la red para responder a las peticiones de los clientes.
  • Lado cliente: Programa que ejecuta el usuario de la aplicación. El cliente hace sus peticiones al servidor a través de la red. Por ejemplo, un navegador Web.
  • Protocolo de aplicación para la comunicación entre el cliente y el servidor. El protocolo define el tipo de mensajes intercambiados; por ejemplo, el protocolo de la capa de aplicación de la Web, HTTP, define el formato y la secuencia de los mensajes transmitidos entre el navegador y el servidor Web.
  • Formato de los mensajes que se intercambian, algunas veces forma parte del servicio; por ejemplo, en el correo electrónico se define el formato de los mensajes electrónicos.

Estos componentes son independientes de la arquitectura de red que se utiliza.

Ejemplos de aplicaciones distribuidas
Remote login, correo electrónico, navegación Web, streaming, telefonía IP y compartición de archivos.

Características de las aplicaciones distribuidas
Concurrencia: De igual forma que en las aplicaciones centralizadas, las aplicaciones distribuidas serán utilizadas por cierto número de usuarios a la vez.
Topología de la red: A pesar de que a día de hoy los anchos de banda cada vez son más amplios, el tráfico de red puede ser un aspecto importante que condicione el tiempo de respuesta de la aplicación.
Ubicación de la lógica: Dado que en una aplicación distribuida intervienen varios procesos, será necesario decidir en cuál de los posibles procesos físicos se sitúa cada componente lógico de la aplicación.
Homogeneidad de las plataformas: En una aplicación distribuida los sistemas operativos involucrados o los lenguajes de desarrollo utilizados pueden ser un factor a tener en cuenta a la hora de decidir algunos aspectos importantes.
Seguridad: Una aplicación distribuida mantiene procesos que de una forma u otra están a la escucha en una red, lo que aumenta la vulnerabilidad de la aplicación.

Tipos de aplicaciones distribuidas
Aplicaciones Monolíticas
Son aquellas en las que el software se estructura en grupos funcionales muy acoplados, involucrando los aspectos referidos a la presentación, procesamiento y almacenamiento de la información.
En una aplicación monolítica las tres partes forman un todo y se ejecutan en la misma máquina.
  • ·         Datos
  • ·         Lógica de negocio
  • ·         Interface de usuario

Ventajas:
  • ·         Funcionan más rápido.
  • ·         Fácil de desarrollar.
  • ·         Difícil de mantener, poco escalable y que
  • ·         Precisa de cierta potencia de proceso.
  • ·         Requieren más y mejor HW en las estaciones de trabajo

Desventajas
  • 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.


Aplicaciones Cliente-Servidor
En las aplicaciones cliente-servidor que llamaremos “tradicionales” sólo encontramos dos procesos principales. Uno de ellos se encarga fundamentalmente de proporcionar los datos que se le solicitan y de procesar los datos que se le envían. Llamamos servidor tanto al proceso que realiza estas funciones como al equipo en el que dicho proceso está alojado. El otro proceso, al que llamamos cliente, se ejecuta en el equipo del usuario que maneja la aplicación, y sus funciones principales son solicitar datos al servidor, presentarlos al usuario para que este realice cierto trabajo con ellos y enviar los cambios al servidor para su reproceso si es necesario.

Aplicaciones en 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.

1.  Aplicaciones de una Capa.
Las capas dentro de una arquitectura son nada más que un conjunto de servicios especializados que pueden ser accesibles por múltiples clientes y fácilmente reutilizables.

2.  Aplicaciones de dos capas.
Se caracterizan por tener 2 asociaciones lógicas, que prestan servicios y que a la final son capas. En la primera capa se incluye a la presentación (Interface gráfica) y a la lógica de negocios, toda la lógica la escribimos en las formas (en el onClick del botón por ejemplo), y accedemos a un servicio de datos para la gestión de los mismos, por lo general a un servidor de Base de Datos.

3.  Aplicaciones de 3 Capas.
Una aplicación de tres capas es una aplicación cuya funcionalidad puede ser segmentada en tres niveles lógicos (capas):
  • ·         Los servicios de presentación.
  • ·         Los servicios de negocios (Lógica de Negocios).
  • ·         Los servicios de datos.