Un Back-end único para dominarlos a todos


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

Aunque tengamos que desarrollar en lenguajes y plataformas diferentes, uno de los mejores objetivos que podemos plantearnos en un departamento técnico es utilizar un mismo Back-end que nos sirva de base para los distintos frontales.

Esta forma de trabajar nos obligará a cambiar algunas costumbres y arquitectura de las aplicaciones, pero será el mejor marco para abarcar todo tipo de proyectos, especialmente si se trata de proyectos de cierta envergadura.

Esto nos hace entender la preocupación actual de desarrollo basado en API: realizar un Back-end, con datos y lógica de negocio que sea capaz de funcionar en cualquier frontal que queramos aplicar. Para entenderlo, recordemos que antes se desarrollaba con un lenguaje del lado del servidor y hoy se tiende a construir un Back-end que devuelva datos en crudo, y así evitar generar HTML o cualquier otro tipo de salida específica de una plataforma.

El Back-end, cuando recibe una solicitud, suele responder enviando de vuelta datos en un lenguaje de intercambio, que podría ser el XML, aunque por su sencillez y ligereza de procesamiento los desarrolladores hemos acogido en masa JSON, la notación de objeto Javascript.

Ventajas del desarrollo basado en API

  • Se descargan tareas del servidor ya que generar un JSON es más ligero que renderizar código HTML.
  • Damos más trabajo a los clientes web, que mediante Javascript son los responsables de generar la vista que se desee para mostrar esos datos.
  • Se mejora la experiencia de usuario porque los datos viajarán más rápido.
  • Si queremos mostrar los datos de otra forma, con cambiar el template es suficiente y el backend se mantiene tal cual.
  • Ahorramos trabajo al realizar las app de cualquier plataforma móvil ya que utilizaremos el mismo servicio backend.

API REST

Acrónimo de REpresentational State Transfer, REST es la respuesta para implementar un servicio web. La clave en este caso es que un servicio REST no tiene estado. Una aplicación no guarda ninguna información de un usuario, entre una llamada al servicio web y la siguiente pero esto se traduce en ventajas del lado del servidor, como un mayor rendimiento.

Problemática de los datos de sesión

El manejo de sesiones es uno de los problemas optimización de los sistemas Back-end. Aumentar la memoria del servidor será suficiente para atender a más usuarios, pero habrá un momento que por mucho que se aumente no se conseguirá un mayor rendimiento. Tal vez, varios servidores menores en cluster suelen ser más eficientes que uno mayor, aunque también puede generar algun problema con los datos almacenados en la sesión.

¿Cómo conseguimos mantener la identidad de una aplicación, cuando no somos capaces de mantener el estado de los clientes que nos visitan? La respuesta pasa por usar otro tipo de almacenamiento, como serían las bases de datos. Sin embargo, nuestro problema ahora estará en la autenticación y aquí es donde entran en juego los tokens, de los que hablamos a continuación brevemente.

Funcionamiento del token en API REST

Resumimos qué es el token, necesario en el desarrollo de aplicaciones basadas en API REST, que nos permite tener un único Back-end para diferentes frontales.

backend2

Cuando un usuario se identifica en un servicio REST lo hace con sus credenciales de acceso (usuario y clave). El servidor, cuando confirma, devuelve al cliente un token, que no es más que una cadena alfanumérica muy larga e irrepetible, es único por cada usuario y tienen una caducidad corta. Cada solicitud que haga el mismo usuario al API REST vendrá acompañada del token de sesión y así el servidor sabrá que éste es el usuario que se ha autenticado. El token se guarda en un sistema de almacenamiento común que permita el acceso desde cualquier servidor.


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+
0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja un comentario

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