Sesión 2 - Arquitectura de una aplicación web
¿Qué es una aplicación web?
Una aplicación web es un sistema de documentos con hipertexto, hipermedia e hipervínculos que están interconectados y son accesibles usando el protocolo HTTP, algunas de las páginas a las que accedemos vía Internet son un ejemplo de ello. Es importante recalcar que no todas las páginas web son consideradas aplicaciones web. Cuando algún componente de la página realice una funcionalidad para el usuario se considera que es una aplicación web.
Ejemplificación gráfica de aplicación web. Tomada de http://www.webtom.com.ar/ |
Ventajas y Desventajas
Ventajas
|
Desventajas
|
Acceso desde casi cualquier dispositivo
|
Pueden ser complejas del lado del servidor
|
Flexibilidad en cuanto a tecnologías
|
Implica muchas tecnologías
|
Las actualizaciones no requieren instalaciones del parte del cliente
|
Aplicaciones difíciles de desarrollar y depurar
|
Concurrencia de usuarios
|
Acceso limitado, depende de conexión a Internet
|
Aplicación Cliente-Servidor
Como el nombre lo indica, una aplicación web con una arquitectura cliente-servidor consta de dos componentes, el cliente es todo aquel que establece una conexión con el servidor, este realiza peticiones y recibe las respuestas a dichas peticiones por parte del servidor. Por otro lado un servidor recibe peticiones, contiene datos y proporciona servicios.
Funcionamiento cliente-servidor. Tomada de https://redespomactividad.weebly.com/modelo-cliente-servidor.html |
Modelo de capas de una aplicación web
Lógica
Uno de los modelos más comunes para la programación web es el modelo de tres capas, el cual tiene como objetivo separar en tres niveles cada uno de los componentes y funcionalidades. Estas capas son:
Física
Para referirnos donde se ejecuta el código y corren los procesos es necesario conocer la arquitectura física de una aplicación, en una aplicación web, un modelo comúnmente usado es la arquitectura 6-tier. Esta arquitectura se divide la siguiente manera:
Principios de diseño en la construcción de aplicaciones web
Como se mencionó anteriormente, el desarrollo de una aplicación web puede ser complejo, principalmente por la gran cantidad de componentes que un sistema de este tipo envuelve. Como en gran cantidad de proyectos o sistemas relativamente complejos, el diseño es fundamental para que tareas como el desarrollo y mantenimiento sean más llevadero. A continuación, se presentan algunos principios y patrones de diseño que pueden ser considerados útiles a la hora de construir una aplicación web.
Es importante para las aplicaciones complejas, tener en mente que la abstracción es de suma importancia para poder tener en mente de una forma más sencilla y general todo el conjunto de componentes y funcionalidades del sistema, algunos patrones ayudan a que se cumpla este aspecto.
Arquitectura de una aplicación, divida por funcionalidad lo cual ayuda en el diseño. Tomada de https://www.researchgate.net/figure/Pattern-for-Online-cardiac-image-repository-Layered-N-Tier_fig1_234785551 |
Cliente-Servidor
Este patrón de diseño es uno de los más usados y más simples de implementar, se basa simplemente es dividir los componentes entre cliente y servidor. Las funcionalidades de estos componentes fueron explicados anteriormente. Para una aplicación web, el cliente es el navegador y el servidor sería el encargado de gestionar los recursos web.
Arquitectura N-Capas
Este patrón de diseño, además de poseer la arquitectura de cliente-servidor. Del lado de servidor existen niveles que son responsables del tratamiento y despliegue de los datos. Este patrón puede generar el principio de diseño planteado a continuación.
Separación de ocupaciones
Este principio define que al dividir un sistema en capas o niveles, cada uno de estos realiza una única funcionalidad, la cual es accesible interfaces propias de cada capa/nivel. Esto ayuda a que el mantenimiento sea más sencillo debido a que posibles modificaciones en un nivel no afectan los además.
Referencias
Solano, E. (2018). Qué es una aplicación web. Curso Introducción al desarrollo de aplicaciones WEB - IC8016.
Yuniels. (n.d.). Retrieved from http://deprogramacion.cubava.cu/2015/10/14/aplicaciones-web-ventajas-y-desventajas/
Comentarios
Publicar un comentario