Front-end e back-end: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
 
(43 versioni intermedie di 27 utenti non mostrate)
Riga 1:
I termini [[lingua inglese|inglesi]] '''''front-end''''' (in sigla '''FE''') e '''''back-end''''' (in sigla '''BE''') in informatica denotano, rispettivamente, la parte visibile all'utente di un [[programma (informatica)|programma]] e con cui egli può interagire — tipicamente un'[[interfaccia utente]] — e la parte che permette l'effettivo funzionamento di queste interazioni.<ref>{{Cita web|autore=Boolean Careers|anno=2020|titolo=Front-end, back-end e full-stack web developer: qual è la differenza?|https://www.boolean.careers/blog/content/front-end-e-back-end-web-developer-ecco-la-differenza}}</ref> Il ''front end'', nella sua accezione più generale, è responsabile dell'acquisizione dei dati di ingresso e della loro elaborazione con modalità conformi a specifiche predefinite e invarianti, tali da renderli utilizzabili dal ''back end''. Il collegamento del ''front end'' al ''back end'' è un caso particolare di [[interfaccia (informatica)|interfaccia]].
{{F|teorie dell'informatica|febbraio 2013}}
{{W|informatica|luglio 2014}}
 
== Uso ==
I termini '''''front end''''' e '''''back end''''' (anche scritti, con grafia meno corretta ma più comune, ''frontend'' o ''front-end'' e ''backend'' o ''back-end'') denotano, rispettivamente, lo stadio iniziale e lo stadio finale di un processo.
I termini acquistano diversi e precisi significati se applicati ad ambiti più specifici.:
* Nel campo della [[Progettazione (ingegneria del software)|progettazione ''software'']] e [[programmazione (informatica)|sviluppo ''software'']] il ''front end'' è la parte di un sistema ''software'' che gestisce l'interazione con l'utente o con sistemi esterni che producono dati di ingresso (es. [[interfaccia utente]] con un ''[[form]]''), il ''back end'' è invece la parte che elabora i dati generati dal ''front end''. Nei sistemi più complessi non è raro che i dati subiscano elaborazioni intermedie prima di passare al ''back end'' (ad es. su un ''[[middleware]]'' come un ''[[application server]]'' in una tipica [[architettura three-tier|architettura ''three-tier'']]). La distinzione di una parte di ingresso e di una parte terminale nei sistemi ''software'' è un genere di astrazione che aiuta a mantenere le diverse parti di un sistema complesso logicamente separate e quindi più semplici. Mentre il front end può essere eseguito anche in locale (classico caso dell'agent), nei sistemi complessi il back end risiede quasi sempre su server remoti.
* Nella programmazione e sviluppo dei [[sito web|siti ''web'']] viene definito ''front end'' la parte visibile da chiunque e raggiungibile all'indirizzo ''web'' del sito e viene definita ''back end'' la parte di amministrazione di un sito (modifica contenuti, creazione pagine) accessibile solo da [[webmaster|amministratori del sito ''web'']]. ''Front end'' e ''back end'' si utilizzano solamente quando il [[web dinamico|sito ''web'' è dinamico]].
* Molti [[Programma (informatica)|programmi per calcolatore]] sono concettualmente suddivisi in ''front end'' e ''back end''. Generalmente nascosto all'utente, il ''back end'' è talvolta un programma completo e indipendente che può essere controllato attraverso un altro programma, detto ''front end''. Spesso il ''front end'' è un'[[interfaccia grafica]] ([[GUI]]) che genera comandi per una più semplice interfaccia a [[riga di comando]]. Tutte le attività richieste attraverso l'interazione con gli elementi dell'interfaccia grafica vengono tradotte in linee di comando e indirizzate al sottostante programma di ''back end''. Questo tipo di programmi ''front end'' è comune in ambiente [[Unix]], dove spesso gli [[applicazione (informatica)|applicativi]] sono sviluppati sulla base di molti programmi piccoli, ben collaudati e potenti, ma al tempo stesso dotati di funzionalità limitate a un preciso e unico scopo. Il ''[[desktop environment]]'' è l'esempio più generale di ''front end'' grafico, mentre [[Ncurses]] offre un esempio di ''front end'' semi-grafico generico.
* Nei [[Compilatore|compilatori]], il ''front end'' traduce il [[codice sorgente]], di solito espresso in un [[linguaggio di programmazione ad alto livello]], in una [[rappresentazione intermedia (informatica)|rappresentazione intermedia]], mentre il ''back end'' trasforma la rappresentazione intermedia del programma in codice del linguaggio di ''[[output]]'' (spesso, un [[assembly|linguaggio assemblatore]]).
* In ambito ''[[networking]]'', sono considerate di ''front end'' le interfacce di rete sulle quali viene erogato un servizio e sulle quali si attestano gli accessi degli utenti, mentre per ''back end'' si intendono le interfacce utilizzate per l'amministrazione o manutenzione dell'apparato che lo eroga.
* Alcuni modi di organizzare l'interazione uomo–calcolatoreuomo-calcolatore possono essere concettualmente schematizzati in termini di ''front end'' e ''back end''. Per esempio, un ''[[file manager]]'' ([[programma (informatica)|programma]] per la gestione di ''[[file]]'') grafico, tipo [[Windows Explorer]] o [[Nautilus (programma)|Nautilus]] possono essere considerati ''front end'' al ''[[file system]]'' del ''[[computer]]''.
* Nel campo della [[Sintetizzatore vocale|sintesi vocale]], il ''front end'' denota la parte del sistema di sintesi che converte il testo in ingresso in una rappresentazione [[fonetica]] simbolica, mentre il ''back end'' converte la rappresentazione simbolica ottenuta in suoni.
* Nel campo dell&#039;''[[Electronic Design Automation]]'' (EDA) e in generale nell'industria dei [[semiconduttori]] si intende con ''front end'' la fase di progettazione relativa alla costruzione fisica dei ''wafer'' di silicio. Si intende invece per ''back end'' la fase di assemblaggio e ''packaging'' dei ''wafer'' stessi.
* Nel campo dell'''[[outsourcing]]'' si trovano sullo stesso livello nonostante abbiano obiettivi di integrazione differenti. Ne sono un esempio le [[applicazione web|applicazioni ''web-based'']].
* In [[radioastronomia]] il ''front end'' di un radiotelescopio consiste in un modulo contenente l'[[antenna]] a tromba corrugata (o ''feed horn''), la [[guida d'onda]] e le antenne necessarie a ricevere il [[Segnale (fisica)|segnale]]. Il termine ''back end'' è usato per riferirsi ai sistemi di [[Amplificatore|amplificazione]] e [[filtro (elettronica)|filtraggio]] del segnale che ripuliscono e modificano il segnale prima di presentarlo all'utilizzatore.
* Nell'[[organizzazione aziendale]] invece si parla più comunemente di ''[[back office]]'' e ''[[front office]]''.
* Nel campo dell'[[analisi dei dati]], il ''back end'' definisce il processo di estrazione ed elaborazione dei dati dalle fonti originarie, mentre il ''front end'' definisce le modalità di rappresentazione e visualizzazione dei dati agli utenti finali
* nel campo della Diagnostica clinica il front-end si riferisce a soluzioni automatizzate in cui la stazione di preanalitica è separata dai moduli analitici successivi e l'operatore carica i supporti con i tubi dei campioni. Questo permette di gestire carichi di lavoro molto elevati in ingresso e l'utilizzo di stazioni analitiche di marche e necessità molto diverse<ref>{{Cita pubblicazione|autore=Giuseppe Lippi|autore2=Gian Luca Salvagno|autore3=Gian Cesare Guidi|anno=2007|titolo=L’automazione della fase preanalitica|rivista=biochimica clinica|volume=32|numero=2}}</ref>
 
== Note ==
Il ''front end'', nella sua accezione più generale, è responsabile dell'acquisizione dei dati di ingresso e della loro elaborazione con modalità conformi a specifiche predefinite e invarianti, tali da renderli utilizzabili dal ''back end''. Il collegamento del ''front end'' al ''back end'' è un caso particolare di [[interfaccia (informatica)|interfaccia]].
<references />
==Uso==
 
== Voci correlate ==
I termini acquistano diversi e precisi significati se applicati ad ambiti più specifici.
* [[Interfaccia utente]]
 
* [[Programma (informatica)]]
* Nel campo della [[Progettazione (ingegneria del software)|progettazione software]] il ''front end'' è la parte di un sistema ''software'' che gestisce l'interazione con l'utente o con sistemi esterni che producono dati di ingresso, il ''back end'' è la parte che elabora i dati generati dal ''front end''. Nei sistemi più complessi non è raro che i dati subiscano elaborazioni intermedie prima di passare al ''back end''. La distinzione di una parte di ingresso e di una parte terminale nei sistemi ''software'' è un genere di astrazione che aiuta a mantenere le diverse parti di un sistema complesso logicamente separate e quindi più semplici.
* Alcuni modi di organizzare l'interazione uomo–calcolatore possono essere concettualmente schematizzati in termini di ''front end'' e ''back end''. Per esempio, un ''file manager'' (programma per la gestione di file) grafico, tipo [[Windows Explorer]] o [[Nautilus (programma)|Nautilus]] possono essere considerati ''front end'' al ''[[file system]]'' del computer.
* In ambito [[networking]], sono considerate di ''front end'' le interfacce di rete sulle quali viene erogato un servizio e sulle quali si attestano gli accessi degli utenti, mentre per ''back end'' si intendono le interfacce utilizzate per l'amministrazione o manutenzione dell'apparato che lo eroga.
* Nei [[Compilatore|compilatori]], il ''front end'' traduce il [[codice sorgente]], di solito espresso in un [[linguaggio di programmazione ad alto livello]], in una [[rappresentazione intermedia (informatica)|rappresentazione intermedia]], mentre il ''back end'' trasforma la rappresentazione intermedia del programma in codice del linguaggio di ''[[output]]'' (spesso, un [[assembly|linguaggio assemblatore]]).
* Nel campo della [[Sintetizzatore vocale|sintesi vocale]], il ''front end'' denota la parte del sistema di sintesi che converte il testo in ingresso in una rappresentazione [[fonetica]] simbolica, mentre il ''back end'' converte la rappresentazione simbolica ottenuta in suoni.
* Molti [[Programma (informatica)|programmi per calcolatore]] sono concettualmente suddivisi in ''front end'' e ''back end''. Generalmente nascosto all'utente, il ''back end'' è talvolta un programma completo e indipendente che può essere controllato attraverso un altro programma, detto ''front end''. Spesso il ''front end'' è un'interfaccia grafica (GUI) che genera comandi per una più semplice interfaccia a riga di comando. Tutte le attività richieste attraverso l'interazione con gli elementi dell'interfaccia grafica vengono tradotte in linee di comando e indirizzate al sottostante programma di ''back end''. Questo tipo di programmi ''front end'' è comune in ambiente [[Unix]], dove spesso gli applicativi sono sviluppati sulla base di molti programmi piccoli, ben collaudati e potenti, ma al tempo stesso dotati di funzionalità limitate a un preciso e unico scopo. Il ''[[desktop environment]]'' è l'esempio più generale di ''front end'' grafico, mentre [[Ncurses]] offre un esempio di ''front end'' semi-grafico generico.
* In [[radioastronomia]] il ''front end'' di un radiotelescopio consiste in un modulo contenente l'antenna a tromba corrugata (o ''feed horn''), la guida d'onda e le antenne necessarie a ricevere il segnale. Il termine ''back end'' è usato per riferirsi ai sistemi di amplificazione e filtraggio del segnale che ripuliscono e modificano il segnale prima di presentarlo all'utilizzatore.
* Nel campo dell&#039;''[[Electronic Design Automation]]'' (EDA) e in generale nell'industria dei semiconduttori si intende con ''front end'' la fase di progettazione relativa alla costruzione fisica dei ''wafer'' di silicio. Si intende invece per ''back end'' la fase di assemblaggio e ''packaging'' dei ''wafer'' stessi.
* Nel campo dell'outsourcing si trovano sullo stesso livello nonostante abbiano obiettivi di integrazione differenti. Ne sono un esempio le applicazioni web-based.
* Nella programmazione e sviluppo dei siti web viene definito ''front end'' la parte visibile da chiunque e raggiungibile all'indirizzo web del sito e viene definita ''back end'' la parte di amministrazione di un sito (modifica contenuti, creazione pagine) accessibile solo da amministratori del sito web. ''Front end'' e ''back end'' si utilizzano solamente quando il sito web è dinamico.
 
== Collegamenti esterni ==
==Voci correlate==
;Front end
*[[Programma (informatica)]]
* {{Collegamenti esterni|from=Q70507976}}
* {{FOLDOC|front end|front end}}
;Back end
* {{Collegamenti esterni|from=Q11223899}}
* {{FOLDOC|back-end|back-end}}
 
{{portale|informatica}}