Una
aplicación distribuida es aquella cuyo objetivo final se alcanza mediante la
ejecución de diversos procesos independientes que por lo general se ejecuten en
equipos diferentes y que de una forma u otra se pasan datos entre ellos
mediante protocolos de comunicaciones bien establecidos.
De igual forma que en las aplicaciones
centralizadas, las aplicaciones distribuidas serán utilizadas por cierto número
de usuarios concurrentemente. Aspectos como las transacciones, los bloqueos de
recursos o el uso de la CPU de los equipos a los que acceden muchos usuarios
son determinantes a la hora de diseñar una arquitectura con la máxima eficacia.
Topología de la red
A pesar de que hoy en día 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. En muchos casos también
será necesario tener en cuenta el tipo de red (LAN o WAN), o si la aplicación
será o no accesible a través de Internet. La forma de distribuir los procesos
de la aplicación tendrá que tomar en consideración el tipo de red que soportará
el tráfico de datos.
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. Mientras que algunos procesos, como la presentación de
datos o la recuperación de los mismos, tienen un sitio natural, otros, como la
validación o la navegación, pueden ocupar diversos lugares dentro del diagrama
que conforma la estructura de la aplicación. En muchas ocasiones la ubicación
de los componentes lógicos impacta sobre el rendimiento, sobre la reutilización
del código o sobre la facilidad de programació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, como por ejemplo el modo de pasar datos
entre procesos. La utilización de estándares puede ser muy útil a la hora de
crear aplicaciones distribuidas que permanezcan abiertas a diversos sistemas
heterogéneos, pero si las plataformas son similares es posible alcanzar mejor
rendimiento sacrificando interoperabilidad.
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. Será
necesario establecer políticas de seguridad que impidan el acceso no autorizado
a los procesos. Pedir al usuario un nombre y una contraseña al iniciar el
programa es probable que no sea suficiente.
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
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.
Aplicaciones
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.
No hay comentarios:
Publicar un comentario