9. ¿Qué es un servidor y qué funciones cumple?

Transcripción

Como comentaba en la introducción, hasta el momento, por un lado hemos visto que para crear aplicaciones en Android necesitábamos aprender Java y Android, o contactar a un desarrollador de aplicaciones para Android; y por otro lado, para crear aplicaciones en iPhone y IPad necesitábamos aprender o bien Swift y iOS, o contactar con un desarrollador de aplicaciones para iOS.

¿En qué consiste el desarrollo backend

Pues bien, si dejáramos de lado el desarrollo back-end, que habíamos comentado por arriba y no habíamos visto, las aplicaciones que podríamos crear con esto, serían muy básicas; serían aplicaciones que no utilizarían internet.

¿Por qué? Porque para crear aplicaciones que utilicen internet, necesitaríamos tener un servidor.

Esta parte es la que hasta ahora estábamos llamando desarrollo back-end y lo estábamos dejando un poco de lado porque necesitaba un capítulo entero para explicarlo, así que vamos a ello.

Para entender esto, vamos a ver un poco por encima como funciona la gran mayoría de aplicaciones que utilizamos hoy en dia. Veamos por ejemplo, cómo funciona Facebook, muy por encima.

Cada vez que abres Facebook, te salen una serie de publicaciones ¿De dónde salen estas publicaciones? Estas publicaciones salen de internet sí, pero esto es un poco general. En realidad, están saliendo de un servidor de Facebook. Un servidor no es mas que un ordenador en algún lugar del mundo conectado a internet, que se encarga de conectar y servir información de una aplicación.

En este caso concreto, los servidores de Facebook se encargan de almacenar toda la información de la red social y la distribuyen a los distintos usuarios que la pidan.

Realmente, el corazón de Facebook, lo que lo hace funcionar, no está en nuestros móviles ni en nuestro navegador del ordenador; está todo en un servidor, en un almacén inteligente podríamos decir.

Lo que tu móvil hace cada vez que entras a la aplicación de Facebook, es preguntar a este servidor de Facebook que le proporcione las siguientes publicaciones a mostrar, por ejemplo. ¿Cómo lo hace? Se comunica a través de internet.

De la misma manera que en un ordenador, vamos a Google Chrome y visitamos Facebook.com, nuestra aplicación móvil hace algo parecido pero de forma oculta podríamos decir. En ambos casos se está preguntando al servidor a través de internet por una información y, el servidor responde con todo lo que le pedimos.

Al igual que recibimos información, también podemos enviar nosotros cosas a este servidor. Por ejemplo, cuando subimos una foto nueva, ya sea a través del web o del móvil, le estamos diciendo al servidor Hey servidor, súbeme esta foto a mi perfil de Facebook. Es lo mismo que anteriormente pero la información va al revés.

En este caso el servidor recibe nuestra foto y sabe que hacer con ella, donde guardarla, como posicionarla y toda la información que va en ella.

Lo importante aquí es el papel del servidor. Realmente es lo que hace funcionar a Facebook o cualquier otra aplicación. Android, iOS, o la web, son simplemente interfaces de usuario que muestran estos datos de una forma visual.

Podríamos hacer un símil con la vida real. Por ejemplo, la televisión. ¿Qué pasa si compras una televisión y no le conectas una antena? Pues poco podrás hacer la verdad. Quien realmente tiene los datos de las imágenes y el audio de la tele, es el cable de la antena. Lo que pasa es que, para transformar los datos en algo visible, necesitamos una televisión. Realmente en este caso, el cable no sería el servidor, sino el medio mediante el cual se transmite. Sería el internet en el caso de las aplicaciones. Creo que se puede entender.

Vamos a ver otro ejemplo para poder aclarar esto del servidor. Imaginemos Whatsapp. Cada vez que estamos enviando un mensaje, realmente no estamos enviando mensajes de un dispositivo a otro directamente; siempre hay un servidor de por medio.

En primer lugar, estamos diciéndole al servidor envía este mensaje, a esta persona. Y, el servidor, es el encargado de decir vale, le envío a esta persona que tiene tal dispositivo. Siempre, está el servidor de por medio.

Esto es lo mismo con casi cualquier aplicación. La gran mayoría de aplicaciones que tenemos instaladas en nuestro móvil, tienen sus propios servidores. ¿Por qué es importante saber esto? Porque si nosotros queremos crear una aplicaicones, seguramente tenemos que tener uno. Pero, ¿Cuándo necesito un servidor y cuando no? ¿Por qué realmente no tienes que necesitar uno?

Pues bien, si tus usuarios pueden crear cuentas y logearse; si pueden comunicarse con otros usuarios, si pueden buscar información dinámica y cambiante en la aplicación, esto es un signo de que necesitaras un servidor. El único caso en donde tu app no necesitaba un servidor es si esta app es muy simple y no necesita acceder a internet. Por ejemplo, un reloj, una calculadora, una cámara o un reproductor de música, serían aplicaciones que podrían funcionar sin un servidor.

Sin embargo, aplicaciones como redes sociales, de compra-venta de productos, reservas de hoteles, de mensajería, todas ellas van a necesitar sí o sí un servidor.

En general, como decía, si tu aplicación sirve información cambiante o tiene que poder comunicar a usuarios entre sí, necesitará un servidor.

Vamos a imaginar al servidor como un almacén; realmente será eso, un almacén de datos. Por ejemplo, en el caso de una red social, en nuestro servidor, almacenaríamos todos los usuarios, su información personal y sus publicaciones. Pero, como ya hemos visto, el servidor no es solo un almacén; es un almacén inteligente.

Cada vez que alguien le pregunta por algo, sabe cómo reaccionar ante ello. Si un móvil, le pide subir una publicación, sabe donde tiene que guardarla; si otro le pregunta por las publicaciones de “Pepito”, sabe cuales son y dónde están.

Programación de servidores

Pero, ¿Cómo puede tener esa inteligencia? Pues porque el servidor es programable. Una vez más, recordar que el servidor no es más que un ordenador, y como cualquier ordenador, se puede programar sobre él.

Muy bien, y ¿Quién programa esto? Pues, esto nos lleva al punto que resumíamos en dos palabras: desarrollador back-end. Podríamos decir que un desarrollador back-end, es el encargado de configurar y programar tu almacén de datos o servidor. Se encarga de guardar todos tus datos de forma ordenada y de establecer unos métodos de comunicación para tus aplicaciones.

A través de estos métodos de comunicación que desarrolle el programador back-end, tus aplicaciones podrán preguntar por datos y dar órdenes al servidor.

¿Qué pasa si no tenemos un servidor para almacenar los datos de nuestra aplicación? En este caso, la información no podría ser guardada más allá del dispositivo del usuario.

Imaginemos una red social sin servidor, ¿Podría hacerse? Sí que podría hacerse pero sería un poco inservible. El usuario podría empezar a subir fotos pero estas se guardarían en su dispositivo. Obviamente, no podría ver las fotos de nadie, porque cada usuario tendría las fotos en su móvil y no irían más allá; no hay una forma de que compartan información entre ellos.

Además, en el momento en que el usuario desinstalara la aplicación de su móvil, todos sus datos se perderían. Se borra la aplicación y los datos asociados en el dispositivo así que, ¿Dónde quedarían todas esas publicaciones? En ningún lugar, porque no hay un servidor que las esté almacenando.

Si te ha resultado útil este artículo puedes hacer que también lo sea para otras personas compartiéndolo en , LinkedIn o .

Como siempre para cualquier duda o sugerencia puedes contactar conmigo y estaré encantado de poder ayudarte.

¡Suscríbete

a la newsletter!

Simple y llanamente te mantendré al día una vez al mes a través de un email con artículos o noticias de interés relacionadas con el mundo de las aplicaciones móviles. ¡Nada de spam!