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.

Resultado de imagen para n layer pattern
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

Entradas más populares de este blog

Sesión 6 - Javascript

Sesión 3 - Ejemplo de uso de servlets y JSP

Laboratorio 1 : Desarrollo práctico de una página WEB acerca de su vida personal