JavaRush /Java Blog /Random-IT /Server. Programma educativo per manichini

Server. Programma educativo per manichini

Pubblicato nel gruppo Random-IT
Di seguito forniamo una traduzione adattata dell'articolo La guida ai server per i non tecnici di Kannan Chandrasegaran, uno sviluppatore di Panopto. Tieni presente che l'articolo è destinato ai principianti che hanno poca familiarità con il concetto di lato server dell'applicazione e dei server. Server.  Programma educativo per manichini - 1

Dalla vita d'ufficio

È difficile essere un “non tecnico” in un’azienda IT, credimi! Gli esperti di marketing, i responsabili delle vendite, i contabili - non importa - di tanto in tanto incontrano i loro colleghi tecnicamente esperti. Potrebbero essere programmatori o amministratori di sistema... In ogni caso, i "non tecnici" si sentono come se avessero amputata una parte importante del loro cervello. Oppure sono atterrati su un pianeta sconosciuto con vita intelligente non umanoide. O…
Server.  Programma educativo per manichini - 2
A volte, ovviamente, tutto finisce bene. Ad esempio, una ragazza front-end sta camminando lungo il corridoio. Niente fa presagire guai: lei va a sinistra, tu vai a destra, e il più velocemente possibile... No, questa volta non è successo. Sei già seduto al tavolo con lei e, cercando di superare il silenzio imbarazzante, le chiedi: “E... cosa fai esattamente?” Comincia a dire qualcosa, ma non capisci subito di cosa sta parlando. Le parole sembrano familiari: interfaccia utente, applicazioni e... sì, Facebook è un sito web. Sì, ci sono pulsanti, menu... In qualche modo hai capito le complessità del suo lavoro, le hai fatto un cenno di saluto e le tue strade divergono nei corridoi di un grande ufficio.
Server.  Programma educativo per manichini - 3
Ma prima o poi non sarai così fortunato: incontrerai un ingegnere del server. O uno sviluppatore back-end. Non sapendo in che tipo di giungla ti troverai ora, fai ingenuamente la stessa domanda e... ricevi in ​​risposta abracadabra. Senti molte parole straniere e pensieri ti attraversano la testa: "È educato chiedere cos'è un'API?", "Usiamo sempre "database", non è vero?", "Chi diavolo è questo Jason?” (JSON)??”. Il tuo amico ingegnere sta cercando di parlarti di server, ma non capisce quanto sia difficile per te comprendere il suo discorso pieno di termini professionali. Probabilmente hai già sentito la parola "server", ma è usata in così tanti contesti diversi che è difficile capirne il significato. Bene, proviamo a capire questo termine.

Giù nella tana del coniglio

Quando una persona comune (cioè non un programmatore o un amministratore) utilizza un'applicazione, tutto ciò che vede è l'interfaccia, un'immagine che reagisce ad alcune azioni ovvie (molto spesso). Ciò che gli utenti solitamente intendono per “applicazione”, infatti, è il suo front-end, cioè la parte frontale, il wrapper con cui interagiscono. Ma gli utenti sanno molto poco di cosa c’è dentro, cioè di cosa fa funzionare l’applicazione. Diciamo che mi mandi un messaggio, ad esempio, tramite Whatsapp o Viber. Sembra che un messaggio stia arrivando dal tuo smartphone al mio. Diamo uno sguardo più da vicino a questo processo. Diciamo che mi invii un messaggio quando il mio telefono è spento e poi spegni tu stesso lo smartphone. E così accendo il telefono e ricevo ancora il tuo messaggio, anche se i nostri telefoni non funzionavano contemporaneamente. Sembra che ci manchi qualcosa! Questo è il "qualcosa" che ci è mancato: il back-end o il server.
Server.  Programma educativo per manichini - 4
Quando i programmatori parlano di front-end e back-end, di solito intendono la separazione della parte utente dell'applicazione dalla logica del programma. Quindi, il front-end è la parte interfaccia dell'applicazione e il back-end è la parte server.

Server

In sostanza, un server è una macchina informatica, un computer connesso a Internet e costantemente acceso.
I due compiti principali del server sono l'archiviazione e la comunicazione dei dati.
Server.  Programma educativo per manichini - 5
Invii un messaggio tramite Whatsapp o Viber, l'applicazione sul tuo smartphone invia il messaggio al server dove viene archiviato. Quando Viber installato sul mio smartphone si connette al server, mi invia tutti i messaggi memorizzati.
Il server è la “stazione base” da cui viene eseguita l'applicazione
Quando un'applicazione richiede qualsiasi informazione, contatta il server. Quando un'applicazione deve comunicare con un altro utente dell'applicazione, è il server che consente loro di comunicare. I termini server, back-end e API sono spesso usati in modo intercambiabile.

Sistemi di archiviazione o di archiviazione dei dati

Il compito principale del server è l'archiviazione dei dati. Ciò include file : foto, video e documenti. Il server li memorizza in modo strutturato simile alle cartelle sul tuo computer, in modo che possano essere accessibili dalle applicazioni. Anche le informazioni vengono memorizzate sul server . Tutte le applicazioni contengono informazioni importanti per il loro funzionamento.
Server.  Programma educativo per manichini - 6
È possibile presentare queste informazioni come un insieme di tabelle. Ad esempio, un'applicazione deve archiviare informazioni su un utente e la relativa password in modo che possa avvenire l'autenticazione. La tua applicazione può essere una guida di ristoranti, nel qual caso il server memorizzerà le informazioni su ciascun ristorante. Oltre alle informazioni stesse, il server registra anche le relazioni tra i dati. Ad esempio, a un utente piace un ristorante in un'applicazione su uno smartphone e il server ricorda questa connessione tra il ristorante e l'utente.
Server.  Programma educativo per manichini - 7
Ciò ti consente di rispondere a molte domande. Per esempio:
  • A quanti utenti è piaciuto questo ristorante?
  • Quali ristoranti piacciono a questo utente?
  • Quali cucine attirano più utenti contemporaneamente?
Le informazioni e le relazioni tra i dati sono archiviate in un database (DB). Esistono molti tipi di database, ma sono tutti:
  • può memorizzare informazioni
  • può memorizzare le relazioni tra i dati
  • può ricevere richieste di informazioni e rispondere ad esse come singoli dati o come insieme di dati, a seconda della richiesta.
Esistono molti tipi di database, ciascuno con i propri vantaggi e svantaggi. Se senti termini come SQL, MySQL, MongoDB, CouchDB, Redis, allora sappi che stiamo parlando di database.

Interazione

Il compito chiave del server è l'interazione con l'applicazione e altri server.
Server.  Programma educativo per manichini - 8
Molte attività dell'applicazione richiedono l'interazione con il server. Ad esempio, se un utente sta cercando qualcosa, la query di ricerca viene inviata al server e da lì arriva il risultato. Se un utente invia un messaggio a un altro utente, questo arriva prima al server. E poi da lì viene inviato all'applicazione di un altro utente, molto spesso sotto forma di notifica inviata. Le interfacce fornite da un server affinché le applicazioni possano interagire con esso sono generalmente chiamate API . Ebbene, alcune funzioni dell'interfaccia possono essere associate agli endpoint , ad esempio alla ricerca o all'autorizzazione sul sito. A chi non lo sapesse, questa interazione può sembrare strana. I due formati di interoperabilità più comuni sono JSON e XML.
Server.  Programma educativo per manichini - 9
XML a sinistra, JSON a destra A prima vista i formati sembrano difficili da leggere. È importante capire che un server è semplicemente un computer, come il tuo laptop o smartphone. L'app sul telefono accetta l'input dell'utente tramite voce, testo, riconoscimento vocale o tocco sullo schermo. L'applicazione elabora queste informazioni e quindi fornisce una risposta sotto forma di immagine sullo schermo. Uno smartphone è un computer che interagisce con una persona, quindi input e output vengono forniti in una forma conveniente per una persona. Un server è un computer che interagisce solo con altri computer. Una persona percepisce le informazioni grazie a cose come: dimensione del carattere, colore del testo e formattazione. Ma questo non significa nulla per il computer.
L'interazione tra i server avviene in formati facili da analizzare e comprendere per altri computer.

Applicazione server

Se desideri creare un'app che verrà eseguita sul tuo telefono, avrai bisogno anche di un'app che verrà eseguita sul server. Le applicazioni lato server vengono create utilizzando linguaggi e framework di programmazione lato server, le opzioni più diffuse sono Java , Ruby on Rails , Node.js , PHP , ASP.NET .
Server.  Programma educativo per manichini - 10
Potresti dire che l'API è la “porta” del tuo server e l'applicazione sa come bussarci. Il database memorizza tutte le tue informazioni. E l'applicazione server è il "cervello" che collega tutto insieme. Riceve e risponde alle richieste che gli vengono inviate tramite l'API, aggiunge e recupera informazioni dal database e prende decisioni. Ad esempio, quando un'applicazione utente invia le informazioni di accesso, la richiesta arriva tramite l'API, le informazioni di accesso corrette vengono archiviate nel database. Il compito dell'applicazione server è confrontarli e rispondere di conseguenza all'applicazione utilizzando l'API.

Hardware

Server.  Programma educativo per manichini - 11
Quando senti la parola “server”, probabilmente immagini questa immagine: armadietti con luci tremolanti in una stanza chiusa. Probabilmente, per completare il quadro, manca solo Tom Cruise, che scenderà dal soffitto e ruberà qualcosa. Molte grandi aziende possiedono i propri server e interi data center (quelle stanze enormi con armadi tremolanti). Facebook e Google hanno centinaia di server in tutto il mondo. Quando gestisci un servizio enorme con milioni di utenti, gestire i tuoi server può essere molto più economico e fornire prestazioni migliori. Invece di mantenere i propri server, molti sviluppatori utilizzano servizi cloud. Servizi come Amazon Web Services, Azure e Digital Ocean offrono la possibilità di utilizzare “server virtuali”. Questi servizi possiedono e mantengono l'hardware e lo sviluppatore carica semplicemente un'applicazione server su di esso. Alcuni fornitori di servizi forniscono il backend come servizio, consentendoti di avere un backend semplice senza dover scrivere tu stesso l'applicazione backend.

Tutte le applicazioni necessitano di un backend?

La maggior parte delle app che conosci probabilmente hanno un componente backend. Naturalmente puoi trovare programmi senza una parte server. Ad esempio, alcune app di produttività. Un modo semplice per scoprire se un'applicazione ha un back-end è simile al seguente:
Se passi alla modalità Aereo, l'app funzionerà comunque?
Se la risposta è “no”, significa che l’applicazione dispone sicuramente di un server backend.
Server.  Programma educativo per manichini - 12
Spero che ora tu abbia capito cos'è il back-end di un'applicazione. Forse la prossima volta che incontrerai i tuoi colleghi programmatori, sarai in grado non solo di capire di cosa stanno parlando, ma anche di usare un dannato "Jason" nella tua conversazione.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION