Frontend y backend

Presentation and data access aspecs in software architecture

En ingeniería de software , los términos frontend y backend (a veces escritos como back end o back-end ) se refieren a la separación de preocupaciones entre la capa de presentación ( frontend ) y la capa de acceso a datos ( backend ) de un software , o la infraestructura física o hardware . En el modelo cliente-servidor , el cliente suele considerarse el frontend y el servidor suele considerarse el backend, incluso cuando parte del trabajo de presentación se realiza en el propio servidor.

Introducción

En la arquitectura de software , puede haber muchas capas entre el hardware y el usuario final . La parte frontal es una abstracción que simplifica el componente subyacente al proporcionar una interfaz fácil de usar , mientras que la parte posterior generalmente se encarga del almacenamiento de datos y la lógica empresarial .

En telecomunicaciones , el frente puede considerarse un dispositivo o servicio, mientras que la parte posterior es la infraestructura que soporta la prestación del servicio.

Una regla general es que el lado del cliente (o "frontend") es cualquier componente manipulado por el usuario. El código del lado del servidor (o "backend") generalmente reside en el servidor , a menudo muy alejado físicamente del usuario.

Definiciones de software

En los sistemas de gestión de contenido , los términos frontend y backend pueden referirse a las vistas del CMS orientadas al usuario final y a las vistas administrativas, respectivamente. [1] [2]

En la síntesis de voz , el frontend se refiere a la parte del sistema de síntesis que convierte el texto de entrada en una representación fonética simbólica , y el backend convierte la representación fonética simbólica en sonidos reales. [3]

En los compiladores , el frontend traduce un código fuente de programación informática a una representación intermedia , y el backend trabaja con la representación intermedia para producir código en un lenguaje de salida de computadora. El backend generalmente optimiza para producir código que se ejecuta más rápido. La distinción frontend/backend puede separar la sección del analizador que se ocupa del código fuente y el backend que genera el código y lo optimiza . Algunos diseños, como GCC , ofrecen opciones entre múltiples frontends (que analizan diferentes lenguajes fuente ) o backends (que generan código para diferentes procesadores de destino ). [4]

Algunas aplicaciones de interfaz gráfica de usuario (GUI) que se ejecutan en un entorno de escritorio se implementan como una interfaz delgada para programas de interfaz de línea de comandos (CLI) subyacentes, para evitar que el usuario tenga que aprender la terminología especial y memorizar los comandos .

El desarrollo web como ejemplo

Otra forma de entender la diferencia entre ambos es entender los conocimientos que se requieren para desarrollar un software frontend y backend . La siguiente lista se centra en el desarrollo web como ejemplo.

Ambos

Centrado en el frontend

Centrado en el backend

Tenga en cuenta que ambos puestos, a pesar de que posiblemente trabajen en el mismo producto, tienen un conjunto de habilidades muy distintas.

API

El frontend se comunica con el backend a través de una API . En el caso de los frontends web y móviles, la API suele basarse en una solicitud/respuesta HTTP . La API a veces se diseña utilizando el patrón "Backend for Frontend" (BFF), que ofrece respuestas para facilitar el procesamiento en el lado del frontend. [5]

Definiciones de hardware

En informática de red , el término frontend puede hacer referencia a cualquier hardware que optimice o proteja el tráfico de la red . [6] Se denomina hardware frontend de la aplicación porque se coloca en el frontend o límite exterior de la red . El tráfico de red pasa por el hardware frontend antes de ingresar a la red.

En el diseño de procesadores , el diseño frontend sería la descripción inicial del comportamiento de un circuito en un lenguaje de descripción de hardware como Verilog , mientras que el diseño backend sería el proceso de mapear ese comportamiento a transistores físicos en una matriz. [7]

Véase también

Referencias

  1. ^ "Front End vs Back End de su sitio web: todo lo que necesita saber". DOJO Creative . 7 de febrero de 2020. Archivado desde el original el 1 de septiembre de 2022 . Consultado el 31 de agosto de 2022 .
  2. ^ Thapliyal, Vimal. «Diferencia entre MVC frontend y backend – Joomlatuts». joomlatuts.net . Archivado desde el original el 30 de diciembre de 2016. Consultado el 30 de diciembre de 2016 .
  3. ^ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (backend)" (PDF) . tamu.edu . Universidad Texas A&M. Archivado desde el original (PDF) el 14 de febrero de 2019 . Consultado el 29 de diciembre de 2016 .
  4. ^ Bin Muhammad, Rashid. "Notas sobre sistemas operativos". www.personal.kent.edu . Universidad Estatal de Kent. Archivado desde el original el 31 de agosto de 2018 . Consultado el 30 de diciembre de 2016 .
  5. ^ Wickramarachchi, Viduni (24 de febrero de 2021). "El patrón BFF (Backend para Frontend): una introducción". Fragmentos y piezas . Archivado desde el original el 27 de marzo de 2024. Consultado el 13 de noviembre de 2021 .
  6. ^ O'Dell, Mike. "Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM". cacm.acm.org . Archivado desde el original el 2016-12-30 . Consultado el 2016-12-30 .
  7. ^ "Diseño de interfaz de usuario | Documentación en línea para productos Altium". techdocs.altium.com . Archivado desde el original el 2016-12-30 . Consultado el 2016-12-30 .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Frontend_and_backend&oldid=1240472383"