Frontend – Backend. Aclarando conceptos.

publicado en: Blog | 0
Share Button

En informática, con la expresión frontend se hace referencia al interfaz de usuario que presenta y/o recibe la información, mientras que la con la expresión backend se alude a la parte encargada de procesar y almacenar la información.

Por sencilla que sea una aplicación, resulta más eficiente separar las tareas de procesado de los datos de las que sirven para consultarlos u obtenerlos. Por una parte, el proceso desarrollo de software puede dividirse en trabajos (sensiblemente) independientes que permiten a un equipo de analistas y programadores trabajar en paralelo; por otra parte el trabajo puede generalizarse de manera que mismo el tratamiento de la información sirva para mostrarlo de diferentes maneras a los usuarios o al contrario, los usuarios puedan ver según unas mismas reglas de comportamiento y apariencia datos de procedencias variadas.

Uno de los contextos en los que más frecuentemente nos encontramos usando esta terminología con nuestros clientes es en el diseño y desarrollo de páginas web. Este caso el modelo corresponde además con una estructura cliente-servidor; el cliente sería el navegador con el que el visitante de la web visualiza los contenidos almacenados en el servidor.

Hablando de páginas web, backend hace referencia al conjunto de aplicaciones que gestionan el proceso y el almacenamiento (grabación y lectura) de los datos que se mostrarán en la web. Estas aplicaciones funcionan, se ejecutan, en el lado del servidor y por regla general necesitan de una infraestructura de base de datos además de un servidor web y un lenguaje de programación con el que manipular la información y obtenerla de la base de datos o almacenarla en ella.

Para las aplicaciones web solemos usar motores de bases de datos como MySQL o más recientemente MariaDB, que es compatible con la anterior. En algunas tareas que requieren estructuras de datos enormes, más arbitrarias y menos tabulares o accesos en un modo menos convencional (NoSQL) también usamos MongoDB.

El servidor web más usado es Apache y es con el que trabajamos de forma habitual en Acadacual. Este servidor web suele soportar el lenguaje de programación incluyéndolo como un módulo. El lenguaje de programación con el que más frecuencia desarrollamos aplicaciones backend es PHP aunque el servidor Apache es capaz de trabajar con muchos otros como Python o Ruby, por ejemplo.

Según lo dicho, en la mayor parte de los proyectos web de Acadacual encontrarás en el backend una infraestructura de base de datos MySQL cuya información se consultará y procesará con una serie de programas escritos en PHP que generarán páginas web servidas por Apache a los visitantes.

En los trabajos web, la parte de programación del frontend se desarrolla casi siempre usando el lenguaje JavaScript. La estructura y la presentación se realizan en HTML y CSS que no son lenguajes de programación sino de marcado y descripción. La misión de JavaScript en el frontend de un sitio web es gestionar la interactividad entre la página y el usuario y controlar la presentación, especialmente cuando se realizan animaciones.

Usando JavaScript y la tecnología AJAX se puede leer o modificar información del servidor y presentarla sin necesidad de volver a cargar una página. Este esquema también sigue la filosofía frontend-backend ya que los datos que se mostrarían al visitante de la web se cargarían y procesarían igualmente en el servidor usando un documento con un programa escrito en PHP.

Si eres usuario de alguna aplicación de Acadacual basada en Internet de las cosas seguramente te habremos hablado también de una alternativa que integra en el lenguaje de programación las tareas del servidor, me refiero a Node.js, que utiliza el lenguaje de programación JavaScript en el backend para conectar con la base de datos y para procesar la información.

Aunque el ejemplo de uso de Node.js en el servidor corresponde correctamente con el esquema de funcionamiento según los papeles de frontend en el cliente (navegador web, mayoritariamente) y backend en el servidor (pese a usar el lenguaje JavaScript) hay que tener en cuenta que que estos conceptos son una abstracción y que la puesta en práctica, aún en un diseño ortodoxo del funcionamiento, es posible encontrar algunas características de un concepto en el otro ciertas (pocas) ocasiones casi siempre justificables por su finalidad.

Como decía al principio, el esquema forntend-backend es muy frecuente, si no ubicuo, en informática y no sólo está presente en aplicaciones con una filosofía cliente-servidor como ocurre con la web. En aplicaciones de escritorio también encontramos este esquema de funcionamiento aunque puede que la infraestructura varíe; por ejemplo, además de bases de datos MySQL o MariaDB, para las aplicaciones de escritorio usamos SQLite cuando el volumen de información es pequeño y los datos residen en la misma máquina que la aplicación (no hay una máquina separada para el servidor de bases de datos) o, al contrario, PostgreSQL cuando las dimensiones de los datos que se tratan son importantes.

Los términos frontend y backend se utilizan en varios ámbitos, además de en el informático, y también como abstracción de un modelo de funcionamiento. Por ejemplo en electrónica, frontend hace referencia a la parte lógica del diseño (el esquema electrónico) y backend a la física, a la implementación del circuito (el trazado físico de las pistas) para su fabricación en PCB.

Seguir Víctor Ventura:

Desarrollador multimedia y web

Tengo la suerte de ir recorriendo una carrera profesional muy variada pero en la que siempre encuentro lugar para la expresión gráfica y para la programación. He desarrollado aplicaciones para CAD, presentaciones multimedia interactivas, tecnología web en el cliente y en el servidor y últimamente para Internet de las cosas, tanto en el ámbito electrónico como en el tratamiento de datos y el interfaz con los usuarios. En Acadacual Granada, además de programar, me encargo de que los servidores sigan funcionando.