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.