JavaRush /Blog Java /Random-ES /Servidores. Programa educativo para tontos.

Servidores. Programa educativo para tontos.

Publicado en el grupo Random-ES
A continuación proporcionamos una traducción adaptada del artículo La guía de servidores para no expertos en tecnología de Kannan Chandrasegaran, un desarrollador de Panopto. Tenga en cuenta que el artículo está destinado a principiantes que no están familiarizados con el concepto del lado del servidor de la aplicación y los servidores. Servidores.  Programa educativo para tontos - 1

De la vida de oficina

Es difícil no ser un experto en tecnología en una empresa de TI, ¡créanme! Comercializadores, directores de ventas, contables... no importa, de vez en cuando se encuentran con colegas con conocimientos técnicos. Podrían ser programadores o administradores de sistemas... De cualquier manera, los "no expertos en tecnología" sienten que les han amputado una parte importante de su cerebro. O aterrizaron en un planeta desconocido con vida inteligente no humanoide. O…
Servidores.  Programa educativo para tontos - 2
A veces, claro, todo acaba bien. Por ejemplo, una chica del front-end camina por el pasillo. Nada presagia problemas: ella va hacia la izquierda, tú vas hacia la derecha y lo más rápido posible... No, esta vez no sucedió. Ya estás sentado a la mesa con ella y, tratando de superar el incómodo silencio, le preguntas: “¿Y… a qué te dedicas exactamente?” Ella empieza a decir algo, pero no entiendes de inmediato de qué está hablando. Las palabras parecen familiares: interfaz de usuario, aplicaciones y... sí, Facebook es un sitio web. Sí, hay botones, menús... De alguna manera descubriste las complejidades de su trabajo, le dices adiós con un gesto y tus caminos se bifurcan en los pasillos de una gran oficina.
Servidores.  Programa educativo para tontos - 3
Pero tarde o temprano no tendrás tanta suerte: conocerás a un ingeniero de servidores. O un desarrollador back-end. Sin saber en qué tipo de jungla te encontrarás ahora, ingenuamente haces la misma pregunta y... recibes abracadabra como respuesta. Escuchas muchas palabras extranjeras y te vienen a la cabeza pensamientos: “¿Es de buena educación preguntar qué es una API?”, “Usamos “base de datos” todo el tiempo, ¿verdad?”, “¿Quién diablos es este Jason? “¿(JSON)??”. Tu amigo ingeniero intenta hablarte sobre servidores, pero no comprende lo difícil que te resulta entender su discurso lleno de términos profesionales. Probablemente hayas escuchado la palabra "servidor" antes, pero se usa en tantos contextos diferentes que es difícil entender su significado. Bueno, intentemos entender este término.

Por la madriguera del conejo

Cuando una persona común (es decir, no un programador o administrador) usa una aplicación, todo lo que ve es la interfaz, una imagen que reacciona a algunas acciones obvias (la mayoría de las veces). De hecho, lo que los usuarios suelen entender por “aplicación” es su front-end, es decir, la parte frontal, el envoltorio con el que interactúan. Pero los usuarios saben muy poco sobre lo que hay dentro, es decir, sobre lo que hace que la aplicación funcione. Digamos que me envías un mensaje, por ejemplo, vía Whatsapp o Viber. Parece que llega un mensaje de tu teléfono inteligente al mío. Echemos un vistazo más de cerca a este proceso. Digamos que me envías un mensaje cuando mi teléfono está apagado y luego apagas tu teléfono inteligente tú mismo. Entonces enciendo mi teléfono y sigo recibiendo tu mensaje, aunque nuestros teléfonos no funcionaron al mismo tiempo. ¡Parece que nos falta algo! Este es el “algo” que nos perdimos: el back-end o servidor.
Servidores.  Programa educativo para tontos - 4
Cuando los programadores hablan de front-end y back-end, generalmente se refieren a la separación de la parte del usuario de la aplicación de la lógica del programa. Entonces, el front-end es la parte de la interfaz de la aplicación y el back-end es la parte del servidor.

Servidores

Básicamente, un servidor es una máquina informática, una computadora que está conectada a Internet y está constantemente encendida.
Las dos tareas principales del servidor son el almacenamiento de datos y la comunicación.
Servidores.  Programa educativo para tontos - 5
Envías un mensaje a través de Whatsapp o Viber, la aplicación de tu teléfono inteligente envía el mensaje al servidor donde se almacena. Cuando Viber instalado en mi teléfono inteligente se conecta al servidor, me envía todos los mensajes almacenados.
El servidor es la “estación base” desde la que se ejecuta la aplicación.
Cuando una aplicación requiere información, se pone en contacto con el servidor. Cuando una aplicación necesita comunicarse con otro usuario de la aplicación, es el servidor el que le permite comunicarse. Los términos servidor, back-end y API suelen utilizarse indistintamente.

Sistemas de almacenamiento o almacenamiento de datos.

La tarea principal del servidor es el almacenamiento de datos. Esto incluye archivos : fotos, vídeos y documentos. El servidor los almacena de forma estructurada, similar a las carpetas de su computadora, para que las aplicaciones puedan acceder a ellos. La información también se almacena en el servidor . Todas las aplicaciones contienen información importante para su funcionamiento.
Servidores.  Programa educativo para tontos - 6
Puede presentar esta información como un conjunto de tablas. Por ejemplo, una aplicación necesita almacenar información sobre un usuario y su contraseña para que pueda realizarse la autenticación. Tu aplicación puede ser una guía de restaurantes, en cuyo caso el servidor almacenará información sobre cada restaurante. Además de la información en sí, el servidor también registra las relaciones entre los datos. Por ejemplo, a un usuario le gusta un restaurante en una aplicación de un teléfono inteligente y el servidor recuerda esta conexión entre el restaurante y el usuario.
Servidores.  Programa educativo para tontos - 7
Esto le permite responder muchas preguntas. Por ejemplo:
  • ¿A cuántos usuarios les ha gustado este restaurante?
  • ¿Qué restaurantes le gustan a este usuario?
  • ¿Qué cocinas gustan a varios usuarios a la vez?
La información y las relaciones entre datos se almacenan en una base de datos (DB). Existen muchos tipos de bases de datos, pero todas son:
  • puede almacenar información
  • puede almacenar relaciones entre datos
  • Puede recibir solicitudes de información y responder a ellas como un dato único o un conjunto de datos, dependiendo de la solicitud.
Existen muchos tipos de bases de datos, cada una con sus propias ventajas y desventajas. Si escucha términos como SQL, MySQL, MongoDB, CouchDB, Redis, sepa que estamos hablando de bases de datos.

Interacción

La tarea clave del servidor es la interacción con la aplicación y otros servidores.
Servidores.  Programa educativo para tontos - 8
Muchas tareas de la aplicación requieren interacción con el servidor. Por ejemplo, si un usuario está buscando algo, la consulta de búsqueda se envía al servidor y el resultado proviene de allí. Si un usuario envía un mensaje a otro usuario, primero llega al servidor. Y luego, desde allí, se envía a la aplicación de otro usuario, normalmente en forma de notificación enviada. Las interfaces que proporciona un servidor para que las aplicaciones puedan interactuar con él suelen denominarse API . Bueno, algunas funciones de la interfaz se pueden asociar con puntos finales , por ejemplo, con búsqueda o autorización en el sitio. Para los no iniciados, esta interacción puede parecer extraña. Los dos formatos de interoperabilidad más comunes son JSON y XML.
Servidores.  Programa educativo para tontos - 9
XML a la izquierda, JSON a la derecha A primera vista, los formatos parecen difíciles de leer. Es importante entender que un servidor es sólo una computadora, como su computadora portátil o teléfono inteligente. La aplicación de su teléfono acepta entradas del usuario mediante voz, texto, reconocimiento de voz o toque en la pantalla. La aplicación procesa esta información y luego proporciona una respuesta en forma de imagen en la pantalla. Un teléfono inteligente es una computadora que interactúa con una persona, por lo que la entrada y salida se proporcionan en una forma conveniente para una persona. Un servidor es una computadora que interactúa solo con otras computadoras. Una persona percibe la información gracias a factores como: el tamaño de fuente, el color del texto y el formato. Pero esto no significa nada para la computadora.
La interacción entre servidores se produce en formatos que son fáciles de analizar y comprender para otras computadoras.

aplicación de servidor

Si desea crear una aplicación que se ejecute en su teléfono, también necesitará una aplicación que se ejecute en el servidor. Las aplicaciones del lado del servidor se crean utilizando marcos y lenguajes de programación del lado del servidor, siendo las opciones populares Java , Ruby on Rails , Node.js , PHP , ASP.NET .
Servidores.  Programa educativo para tontos - 10
Se podría decir que la API es la “puerta” de su servidor y la aplicación sabe tocarla. La base de datos almacena toda su información. Y la aplicación del servidor es el "cerebro" que conecta todo. Recibe y responde a las solicitudes que se le envían a través de la API, agrega y recupera información de la base de datos y toma decisiones. Por ejemplo, cuando una aplicación de usuario envía información de inicio de sesión, la solicitud llega a través de la API y la información de inicio de sesión correcta se almacena en la base de datos. La tarea de la aplicación del servidor es compararlos y responder en consecuencia a la aplicación utilizando la API.

Hardware

Servidores.  Programa educativo para tontos - 11
Cuando escuchas la palabra “servidor”, probablemente te imaginas esta imagen: gabinetes con luces parpadeantes en una habitación cerrada. Probablemente, para completar el cuadro, lo único que falta sea Tom Cruise, quien bajará del techo y robará algo. Muchas grandes empresas poseen sus propios servidores y centros de datos completos (esas enormes salas con gabinetes parpadeantes). Facebook y Google tienen cientos de servidores en todo el mundo. Cuando ejecuta un servicio enorme con millones de usuarios, ejecutar sus propios servidores puede ser significativamente más económico y proporcionar un mejor rendimiento. En lugar de mantener sus propios servidores, muchos desarrolladores utilizan servicios en la nube. Servicios como Amazon Web Services, Azure y Digital Ocean ofrecen la posibilidad de utilizar "servidores virtuales". Estos servicios poseen y mantienen el hardware, y el desarrollador simplemente carga una aplicación de servidor en él. Algunos proveedores de servicios proporcionan el backend como un servicio, lo que le permite tener un backend simple sin tener que escribir la aplicación del backend usted mismo.

¿Todas las aplicaciones necesitan un backend?

La mayoría de las aplicaciones con las que estás familiarizado probablemente tengan un componente de backend. Por supuesto, puedes encontrar programas sin parte de servidor. Por ejemplo, algunas aplicaciones de productividad. Una forma sencilla de saber si una aplicación tiene un back-end es la siguiente:
Si cambias al modo Avión, ¿la aplicación seguirá funcionando?
Si la respuesta es “no”, significa que la aplicación definitivamente tiene un servidor backend.
Servidores.  Programa educativo para tontos - 12
Espero que ahora comprenda qué es el back-end de una aplicación. Tal vez la próxima vez que conozcas a tus compañeros programadores, no sólo puedas entender de qué están hablando, sino también utilizar algún maldito "Jason" en tu conversación.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION