La arquitectura de software es un tema fundamental en el desarrollo de un sistema, ya que permite el modelado de su estructura y diseño. Dependiendo de múltiples factores a la hora de evaluar las necesidades que pretende cumplir el producto de software, el tipo de arquitectura puede variar.
En este artículo te hablaremos acerca de la arquitectura de aplicaciones web, una de las más populares en la actualidad.
¿Qué es la arquitectura de aplicaciones web?
La arquitectura de aplicaciones web es un modelo que permite crear la base estructural para la interacción de los distintos componentes dentro de un sistema web, tales como bases de datos, aplicaciones de terceros, servidores, entre otros (1, 2). En otras palabras, la arquitectura de aplicaciones web permite crear la lógica del funcionamiento de las comunicaciones entre cliente y servidor.
Como puedes observar, la arquitectura web trabaja con un modelo de cliente-servidor. Para dividir el trabajo en el funcionamiento de ambos puntos de la comunicación, existe el front end, el cual se encarga de todo lo relacionado con la interacción del usuario y la aplicación web (por ejemplo, la interfaz de usuario [UI]), mientras que el back end se enfoca en la gestión de todo lo que ocurre del lado del servidor (por ejemplo, las bases de datos).
Desde la perspectiva del back end o servidor, la arquitectura de aplicaciones web divide el trabajo de las funcionalidades del sistema en 3 capas: la capa de presentación, la capa de aplicación y la capa de almacenamiento persistente.
Capa de presentación
Esta es la capa más superficial, y aquella que se comunica con el usuario por medio del navegador web. La capa de presentación, como lo indica su nombre, permite presentar la información al usuario de forma amigable a través de una UI. Como podrías suponer, esta es la capa en la que trabajan las tecnologías HTML, CSS y JavaScript, dando estructura, diseño, y funcionalidad, respectivamente (3).
Capa de aplicación
La capa de aplicación es la encargada de la dirección del tráfico recibido por medio de las peticiones hechas por el usuario en la capa de presentación, lo cual permite que se de la correcta lógica de los eventos. En otras palabras, esta capa se encarga de recibir las peticiones del usuario y dirigirlas para llegar a los destinos correctos (3). Además, en esta capa se incluyen las API´s para interacción con sistemas externos (2).
Capa de almacenamiento persistente
Se trata de la última capa del sistema, que se encarga de recibir las llamadas o peticiones de datos, de forma que permite o deniega el acceso a los datos dentro de un espacio de almacenamiento de datos, como por ejemplo una base de datos o almacenamiento en la nube (3)
En resumen, puedes pensar en esta arquitectura de 3 capas como una oficina de servicio postal. La capa presentación sería un agente encargado de brindar la atención al usuario y recibir los paquetes. Una vez que ha sido recibido, el agente procede a entregar el paquete al área de logística, quienes se encargarán de llevarlo al almacenamiento en bodega.
Por último, la capa de almacenamiento sería el área de bodega de la oficina, la cual se encargará de la recepción del paquete, su almacenamiento y su posterior recuperación para entrega.
Además, existen otros dos componentes que están presentes en todos los sistemas web, pero se separan de las otras capas. Estas son el código transversal y la integración de software de terceros (3).
Tipos de arquitecturas web
Existen distintos tipos de arquitecturas para aplicaciones web, y estas pueden ser divididas tanto del lado del cliente, como del lado del servidor. Por este motivo, te mencionaremos algunos de los tipos que existen.
Single Page Application (SPA)
La Single Page Application (SPA) o Aplicación de Página Simple, consiste en un tipo de arquitectura en la cual la aplicación corre en el navegador (se renderiza), por lo cual no existe la necesidad de recargar la página para actualizar el contenido y realizar nuevas llamadas al backend (4).
Progressive Web App (PWA)
La implementación de las Progressive Web Apps (PWA) o Aplicaciones Web Progresivas, consiste en el mismo principio que las SPA, con la diferencia que las PWA corren algunos servicios adicionales en el navegador. Esto permite que la aplicación pueda hacer la simulación de funcionalidad como una aplicación nativa de escritorio en el OS, pero que en realidad corre en el navegador (4).
Server Side Rendering
A diferencia de SPA, la renderización o carga de la información al cliente se realiza no en el navegador, sino en la capa de presentación del lado del servidor, de forma que las peticiones están pasando constantemente hacia el lado del servidor y volviendo al lado del cliente, lo cual puede generar retrasos en las transmisiones (4).
Si te interesa conocer más al respecto, puedes obtener más información aquí
¿Qué hace un arquitecto de aplicaciones web?
En una descripción corta de las funciones que ejerce un arquitecto de aplicaciones web, podemos decir que es el profesional especializado en el diseño y desarrollo de aplicaciones basadas en la web.
Dentro de sus funciones se destaca que es la persona encargada de la correcta estructuración de un sistema en la web; en otras palabras, el éxito del proyecto depende en gran medida de las decisiones del arquitecto de aplicaciones web (5).
También realiza la planeación de la estructura de una aplicación web, análisis de otras webs para optimización de Search Engine Optimization (SEO) y corrección de errores, es el puente de comunicación entre el cliente y el equipo de desarrollo, desarrolla el código para la web, busca las últimas tendencias en las tecnologías basadas en web, administración bases de datos, conocimientos de backend y frontend, entre otros.
Por todo lo anterior, un arquitecto de aplicaciones web debe tener amplios conocimientos en tecnologías basadas en la web y administración de servidores, así como competencias en habilidades blandas como liderazgo, trabajo en equipo, comunicación asertiva, etc., pues no olvidemos que se trata del representante del proyecto (5).
¡Aprende más sobre la arquitectura de aplicaciones web!
La web ha sido una tecnología completamente revolucionaria, pues pese a que ya han pasado varios años desde la fecha de su creación (1991), su uso se encuentra más vigente que nunca, y el desarrollo de nuevas tecnologías no hacen más que crecer, llegando hasta el punto en cual se ha evidenciado la necesidad de la creación de un cargo especializado en su desarrollo.
Por ello, si te apasiona el mundo de la web o simplemente quieres reforzar tus conocimientos aprendiendo algo nuevo, tenemos una excelente noticia para ti.
En la Universidad El Bosque ofrecemos el Curso Virtual de Arquitectura de Software, en el cual podrás aprender mucho más acerca de las bases conceptuales que fundamentan la arquitectura de software y, con ello, la arquitectura de la web, así como la aplicación de los procedimientos para su desarrollo e implementación.
Aprenderás aspectos relacionados a la comprensión de qué es la arquitectura de software, evaluación de la calidad técnica de las mismas, implementación de distintos modelos o tipos de arquitecturas y mucho más. También podrás contar con un cuerpo docente capacitado que te dará el acompañamiento necesario para que logres el éxito en el curso.
¿Qué esperas? Inscríbete en la Universidad El Bosque y comienza a desarrollar tu propia historia. ¡Haz clic aquí!
Referencias
1. Intellectsoft (3 de noviembre de 2023). Guide to Web Application Architecture. Intellectsoft US. https://www.intellectsoft.net/blog/web-application-architecture/
2. Qutub, A. (7 de noviembre de 2023). Demystifying Web Application Architecture: A Comprehensive Analysis o Web App Components. Enterprise Monkey. https://enterprisemonkey.com.au/web-application-architecture/
3. Altexsoft (24 de julio de 2019). Web Application Architecture: How the Web Works. Altexsoft. https://www.altexsoft.com/blog/web-application-architecture-how-the-web-works/
4. Luchaninov, Y. (23 de enero de 2024). Web Application Architecture in 2024: Moving in the Right Direction. MobiDev. https://mobidev.biz/blog/web-application-architecture-types
5. Zippia (s.f.). Web Architecture Overview. Zippia. https://www.zippia.com/web-architect-jobs/
6. Indeed Editorial Team (18 de noviembre de 2022). What Does a Web Architect Do? (Qualifications an Skills). Indeed. https://ca.indeed.com/career-advice/finding-a-job/what-does-web-architect-