GNU/Linux, Open Source, Cloud Computing, DevOps y más...

¿Qué es la arquitectura web?

No hay comentarios

Arquitectura tecnológica

Antes de poder entrar a definir lo que es la arquitectura web primero es necesario enmarcarla correctamente. Dentro del sector de las tecnologías de la información hay diversos roles relacionados con la arquitectura, pero básicamente podríamos hacer la siguiente división:

  • Arquitectos de sistemas: conjugan distintos elementos hardware (máquinas y otros dispositivos) con elementos software (sistemas operativos) para construir sistemas capaces de ofrecer los recursos que necesitan las distintas aplicaciones o servicios destinados a correr sobre ellos.Esquema típico manejado por un arquitecto de sistemas
  • Arquitectos de datos: diseñan cómo se va a estructurar la información manejada por las aplicaciones mediante el uso de bases de datos.Esquema típico manejado por un arquitecto de datos
  • Arquitectos de almacenamiento: diseñan redes de almacenamiento (SAN) que permitan almacenar toda la información que generan las distintas aplicaciones que corren sobre los sistemas de información.Esquema típico manejado por un arquitecto de almacenamiento
  • Arquitectos de redes: planean y diseñan las redes de comunicación que permitan el intercambio de datos entre distintos sistemas de información.Esquema típico manejado por un arquitecto de redes
  • Arquitectos de software: más típicamente conocidos como ingenieros de software, diseñan y construyen las aplicaciones que van a permitir ofrecer el servicio que necesitan los usuarios de los sistemas de información u otras aplicaciones.

Diagrama de clases manejado típicamente por un ingeniero de softwareDiagrama ULM manejado típicamente por un arquitecto software

Arquitectura web

Sería en este último grupo donde se encuadrarían los arquitectos web, como un subgrupo de los arquitectos de software especializado en diseñar y contruir aplicaciones que se van a utilizar a través de lo que conocemos como la Web, es decir, haciendo uso del protocolo HTTP para comunicarse con el usuario o con otras aplicaciones web.

A veces esta división no es tan clara, sobre todo en proyectos de menor tamaño donde el arquitecto web puede tener que llevar a cabo tareas como la selección y el dimensionamiento de las plataformas hardware y software en las que se apoyará una aplicación web, dimensionar el tráfico de red que va a generar la aplicación y dotarla de los recursos necesarios para que pueda asumir dicho tráfico, diseñar cuestiones relativas al almacenamiento y la disponibilidad de los datos como la replicación de bases de datos, etc.

Conceptos de desarrollo web

En cualquier caso, las competencias que genuinamente son propias de un arquitecto web son las siguientes:

  • Diseño de la interfaz de usuario de la aplicación web. En el caso de un sitio web se referiría al diseño de la propia web, tanto su aspecto visual (colores, imágenes, tipografía empleada, posicionamiento de los distintos bloques de contenido dentro de las distintas páginas, etc.), como de la estructuración de los contenidos en diversas secciones y apartados enlazables a través de un menú con las distintas opciones disponibles. Aquí entrarían en juego distintas disciplinas como las del diseño gráfico, la usabilidad, la experiencia de usuario (UX), la interacción usuario-máquina, los mapas del sitio o mapas web, etc., así como distintos términos como HTML5, CSS, DOM, Javascript, AJAX, estándares web, etc.
  • Diseño e implementación de la lógica de la aplicación, es decir, del conjunto de funcionalidades que ofrecerá ésta, como el procesamiento de los datos introducidos por el usuario, el cálculo de resultados a partir de distintos datos de entrada, el diseño y ejecución de algoritmos, la manipulación de la información almacenada en una base de datos, la ejecución de diversas acciones como consecuencia del cumplimiento de diversas condiciones o del disparo de algún evento, etc. Es decir, planear y diseñar lo que luego se llevará a cabo mediante el uso de uno o varios lenguajes de programación.
  • El arquitecto de datos se ocupa más de dimensionar y diseñar la implementación de un motor de base de datos concreto, mientras que la arquitectura de la información que maneja un arquitecto web se ocupa más de la propia naturaleza de la información en sí y de como se organiza ésta dentro de una base de datos.

    Diseño de la arquitectura de la información, es decir, determinar la información del mundo real que tendrá que tratar una aplicación, diseñar un modelo conceptual que sea un fiel reflejo de dicho mundo real con sus distintas entidades y relaciones entre dichas entidades, determinar el modelo de datos que mejor se adapte a dicho modelo conceptual, implementar ese modelo de datos sobre un motor de bases de datos concreto y trasladar a él la información necesaria para el correcto funcionamiento de nuestra aplicación. No confundir todo esto con la labor de un arquitecto de datos, que sería la de organizar la información presente en estas bases de datos para un mejor aprovechamiento de los recursos disponibles, es decir, determinar qué volúmenes o qué discos físicos se asignan a dichas bases de datos, cómo replicar dichos volúmenes para conseguir redundancia de datos, cómo optimizar el uso de memoria o de entrada/salida que hace la base de datos, etc.



 

Sobre el autor

Daniel López Azaña
Arquitecto de soluciones Cloud

Emprendedor, generador de ideas y mente inquieta. Apasionado de las nuevas tecnologías, especialmente de los sistemas Linux y del software libre. Me gusta escribir además sobre actualidad tecnológica, Cloud Computing, DevOps, seguridad, desarrollo web y programación, SEO, ciencia, innovación, emprendimiento, etc.

Daniel¿Qué es la arquitectura web?

Artículos relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *