JavaRush /Blogue Java /Random-PT /Servidores. Programa educativo para manequins

Servidores. Programa educativo para manequins

Publicado no grupo Random-PT
Abaixo, fornecemos uma tradução adaptada do artigo O guia para servidores para não-técnicos, de Kannan Chandrasegaran, um desenvolvedor da Panopto. Observe que o artigo é destinado a iniciantes que estão pouco familiarizados com o conceito do lado servidor do aplicativo e dos servidores. Servidores.  Programa educativo para manequins - 1

Da vida no escritório

É difícil ser um “não técnico” em uma empresa de TI, acredite! Profissionais de marketing, gerentes de vendas, contadores - não importa - de vez em quando encontram colegas com experiência técnica. Eles poderiam ser programadores ou administradores de sistema... De qualquer forma, os "não-técnicos" sentem que tiveram uma parte importante de seu cérebro amputada. Ou pousaram em um planeta desconhecido com vida não-humanóide inteligente. Ou…
Servidores.  Programa educativo para manequins - 2
Às vezes, é claro, tudo acaba bem. Por exemplo, uma garota do front-end está andando pelo corredor. Nada prenuncia problemas: ela está indo para a esquerda, você está indo para a direita, e o mais rápido possível... Não, desta vez não aconteceu. Você já está sentado à mesa com ela e, tentando superar o silêncio constrangedor, pergunta: “E... o que exatamente você faz?” Ela começa a dizer alguma coisa, mas você não entende imediatamente do que ela está falando. As palavras parecem familiares: interface de usuário, aplicativos e - sim, Facebook é um site. Sim, existem botões, menus... Você de alguma forma descobriu os meandros do trabalho dela, acenou para ela e seus caminhos divergem nos corredores de um grande escritório.
Servidores.  Programa educativo para manequins - 3
Mas mais cedo ou mais tarde você não terá tanta sorte: encontrará um engenheiro de servidor. Ou um desenvolvedor back-end. Sem saber em que tipo de selva você se encontrará agora, você ingenuamente faz a mesma pergunta e... recebe abracadabra em resposta. Você ouve muitas palavras estrangeiras e pensamentos passam pela sua cabeça: “É educado perguntar o que é uma API?”, “Usamos “banco de dados” o tempo todo, não é?”, “Quem diabos é esse Jason?” (JSON)??”. Seu amigo engenheiro está tentando lhe falar sobre servidores, mas ele não entende como é difícil para você entender o discurso dele repleto de termos profissionais. Você provavelmente já ouviu a palavra “servidor” antes, mas ela é usada em tantos contextos diferentes que é difícil entender seu significado. Bem, vamos tentar entender esse termo.

No buraco do coelho

Quando uma pessoa comum (ou seja, não um programador ou administrador) usa um aplicativo, tudo o que ela vê é a interface, uma imagem que reage a algumas ações óbvias (na maioria das vezes). Na verdade, o que os usuários costumam entender por “aplicação” é o seu front-end, ou seja, a parte frontal, o wrapper com o qual interagem. Mas os usuários sabem muito pouco sobre o que há dentro, ou seja, sobre o que faz o aplicativo funcionar. Digamos que você me envie uma mensagem, por exemplo, via Whatsapp ou Viber. Parece que uma mensagem está vindo do seu smartphone para o meu. Vamos dar uma olhada mais de perto nesse processo. Digamos que você me envie uma mensagem quando meu telefone estiver desligado e depois desligue você mesmo o smartphone. E assim ligo meu telefone e ainda recebo sua mensagem, embora nossos telefones não funcionassem ao mesmo tempo. Parece que está faltando alguma coisa! Este é o “algo” que perdemos – o back-end ou servidor.
Servidores.  Programa educativo para manequins - 4
Quando os programadores falam sobre front-end e back-end, eles geralmente se referem à separação da parte do usuário do aplicativo da lógica do programa. Portanto, o front-end é a parte da interface do aplicativo e o back-end é a parte do servidor.

Servidores

Essencialmente, um servidor é uma máquina de computação, um computador conectado à Internet e constantemente ligado.
As duas tarefas principais do servidor são armazenamento de dados e comunicação.
Servidores.  Programa educativo para manequins - 5
Você envia uma mensagem via Whatsapp ou Viber, o aplicativo do seu smartphone envia a mensagem para o servidor onde ela está armazenada. Quando o Viber instalado no meu smartphone se conecta ao servidor, ele me envia todas as mensagens armazenadas.
O servidor é a “estação base” a partir da qual o aplicativo é executado
Quando um aplicativo requer alguma informação, ele entra em contato com o servidor. Quando uma aplicação precisa se comunicar com outro usuário da aplicação, é o servidor que permite a comunicação. Os termos servidor, back-end e API são frequentemente usados ​​de forma intercambiável.

Sistemas de armazenamento ou armazenamento de dados

A principal tarefa do servidor é o armazenamento de dados. Isso inclui arquivos : fotos, vídeos e documentos. O servidor os armazena de forma estruturada, semelhante às pastas do seu computador, para que possam ser acessados ​​pelos aplicativos. As informações também são armazenadas no servidor . Todas as aplicações contêm informações importantes para o seu funcionamento.
Servidores.  Programa educativo para manequins - 6
Você pode apresentar essas informações como um conjunto de tabelas. Por exemplo, um aplicativo precisa armazenar informações sobre um usuário e sua senha para que a autenticação possa ocorrer. Sua aplicação pode ser um guia de restaurantes, caso em que o servidor armazenará informações sobre cada restaurante. Além das informações em si, o servidor também registra relacionamentos entre os dados. Por exemplo, um usuário curte um restaurante em um aplicativo de smartphone, e o servidor lembra dessa conexão entre o restaurante e o usuário.
Servidores.  Programa educativo para manequins - 7
Isso permite que você responda a muitas perguntas. Por exemplo:
  • Quantos usuários gostaram deste restaurante?
  • De quais restaurantes esse usuário gosta?
  • Quais cozinhas atraem vários usuários ao mesmo tempo?
As informações e relacionamentos entre os dados são armazenados em um banco de dados (BD). Existem muitos tipos de bancos de dados, mas são todos:
  • pode armazenar informações
  • pode armazenar relacionamentos entre dados
  • pode receber solicitações de informações e respondê-las como dados únicos ou como um conjunto de dados, dependendo da solicitação.
Existem muitos tipos de bancos de dados, cada um com suas vantagens e desvantagens. Se você ouvir termos como SQL, MySQL, MongoDB, CouchDB, Redis, saiba que estamos falando de bancos de dados.

Interação

A principal tarefa do servidor é a interação com o aplicativo e outros servidores.
Servidores.  Programa educativo para manequins - 8
Muitas tarefas do aplicativo requerem interação com o servidor. Por exemplo, se um usuário está pesquisando algo, a consulta de pesquisa é enviada ao servidor e o resultado vem de lá. Se um usuário envia uma mensagem para outro usuário, ela chega primeiro ao servidor. E a partir daí ele é enviado para o aplicativo de outro usuário, geralmente na forma de uma notificação enviada. As interfaces que um servidor fornece para que os aplicativos possam interagir com ele são geralmente chamadas de APIs . Pois bem, algumas funções da interface podem ser associadas a endpoints , por exemplo, com pesquisa ou autorização no site. Para os não iniciados, esta interação pode parecer estranha. Os dois formatos de interoperabilidade mais comuns são JSON e XML.
Servidores.  Programa educativo para manequins - 9
XML à esquerda, JSON à direita À primeira vista, os formatos parecem difíceis de ler. É importante entender que um servidor é apenas um computador, como seu laptop ou smartphone. O aplicativo do seu telefone aceita entrada do usuário por voz, texto, reconhecimento de voz ou toque na tela. O aplicativo processa essas informações e depois fornece uma resposta na forma de uma imagem na tela. Um smartphone é um computador que interage com uma pessoa, portanto, a entrada e a saída são fornecidas de uma forma conveniente para a pessoa. Um servidor é uma máquina de computação que interage apenas com outros computadores. Uma pessoa percebe informações graças a coisas como: tamanho da fonte, cor do texto e formatação. Mas isso não significa nada para o computador.
A interação entre servidores ocorre em formatos fáceis de analisar e entender para outros computadores.

Aplicativo de servidor

Se quiser criar um aplicativo que será executado no seu telefone, você também precisará de um aplicativo que será executado no servidor. Aplicações server-side são criadas usando linguagens e frameworks de programação server-side, sendo opções populares Java , Ruby on Rails , Node.js , PHP , ASP.NET .
Servidores.  Programa educativo para manequins - 10
Você poderia dizer que a API é a “porta” do seu servidor e a aplicação sabe como bater nela. O banco de dados armazena todas as suas informações. E o aplicativo de servidor é o “cérebro” que conecta tudo. Ele recebe e responde às solicitações que lhe são enviadas por meio da API, adiciona e recupera informações do banco de dados e toma decisões. Por exemplo, quando um aplicativo de usuário envia informações de login, a solicitação vem através da API, as informações de login corretas são armazenadas no banco de dados. A tarefa do aplicativo servidor é compará-los e responder de acordo com o aplicativo usando a API.

Hardware

Servidores.  Programa educativo para manequins - 11
Ao ouvir a palavra “servidor”, você provavelmente imagina esta imagem: armários com luzes bruxuleantes em uma sala fechada. Provavelmente, para completar o quadro, só falta Tom Cruise, que descerá do teto e roubará alguma coisa. Muitas grandes empresas possuem seus próprios servidores e data centers inteiros (aquelas salas enormes com gabinetes oscilantes). O Facebook e o Google têm centenas de servidores em todo o mundo. Quando você executa um serviço enorme com milhões de usuários, executar seus próprios servidores pode ser significativamente mais barato e fornecer melhor desempenho. Em vez de manter seus próprios servidores, muitos desenvolvedores usam serviços em nuvem. Serviços como Amazon Web Services, Azure e Digital Ocean oferecem a capacidade de usar “servidores virtuais”. Esses serviços possuem e mantêm o hardware, e o desenvolvedor simplesmente carrega um aplicativo de servidor nele. Alguns provedores de serviços fornecem o back-end como um serviço, permitindo que você tenha um back-end simples sem precisar escrever o aplicativo de back-end sozinho.

Todos os aplicativos precisam de um back-end?

A maioria dos aplicativos com os quais você está familiarizado provavelmente possui um componente de back-end. Claro, você pode encontrar programas sem parte de servidor. Por exemplo, alguns aplicativos de produtividade. Uma maneira fácil de descobrir se um aplicativo tem back-end é semelhante a esta:
Se você mudar para o modo Voo, o aplicativo ainda funcionará?
Se a resposta for “não”, isso significa que o aplicativo definitivamente possui um servidor backend.
Servidores.  Programa educativo para manequins - 12
Espero que agora você entenda o que é o back-end de um aplicativo. Talvez na próxima vez que você encontrar seus colegas programadores, você será capaz não apenas de entender o que eles estão falando, mas também de usar um maldito “Jason” em sua conversa.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION