IL SOFTWARE WEB

Fabio Zappa
#COMEFUNZIONAINTERNET
5 min readJun 30, 2020

--

Questo articolo è una presentazione di come lavora un software web. Cercherò di spiegare a grandi linee senza scendere troppo nei tecnicismi come funziona tutto l’ecosistema dei software web/in cloud.

Semplificando al massimo, un software Web è un programma al quale è possibile accedere tramite un browser, da qualsiasi dispositivo che può raggiungere il server dove il programma è installato.

I due casi tipici che rappresentano “raggiungere il server” sono il caso di un software installato su Internet o su Intranet. Nel caso che il software sia installato su Internet potrà essere raggiunto da qualsiasi dispositivo connesso alla rete. Nel caso sia installato all’interno di una rete locale il software potrà essere raggiunto solo dai dispositivi connessi a quella rete, Intranet. Spesso, impropriamente, si sente chiamare con il nome “Intranet” il programma condiviso sulla rete privata.

Il confine tra sito Internet e software web è molto labile e per l’utilizzatore non è mai ben chiaro dove finisca uno ed inizi l’altro, ma facciamo alcuni esempi.

Il software di home-banking è un perfetto esempio di software web estremamente evoluto e complesso che spesso è considerato il sito della banca.

Tramite il pannello di home-banking potete accedere al vostro conto corrente, pagare bollette ed effettuare una serie di operazioni che ben conoscete. Prima dell’avvento di Internet, per fare questo era necessario recarsi in filiale, parlare con un addetto alla clientela che utilizzava un programma, come il 3270, con architettura client-server per eseguire le operazioni richieste.

Altri esempi sono i Market place, siti internet che permettono di scambiare, vendere e comprare prodotti di ogni sorta tra privati ed aziende, questi software si occupano di calcolare le tasse in base alla nazione, fare i cambi di valuta, organizzare e tracciare le spedizioni, prelevare i soldi dalle carte di credito e depositarli su conti correnti e molto altro ancora.

Credo che chiunque stia leggendo questo testo abbia avuto esperienze dirette od indirette di acquisti online, quindi sappiamo che basta andare su un motore di ricerca, digitare il nome di quello che vogliamo comprare, facciamo “3 click”, inseriamo i dati della carta di credito e due giorni dopo il corriere ci consegna il nostro prodotto. Provate solo ad immaginare i vostri 3 click che quantità di azioni generano, tra e-mail, sms, spostamento di soldi e materiali, operazioni di imballaggio e spedizione, ecc..

Quasi tutte queste operazioni sono gestite da software che da una parte eseguono delle operazioni (preleva i soldi dalla carta di credito), dall’altra notificano a delle persone le azioni da eseguire (avvisa il corriere che quel pacco deve essere consegnato a quel indirizzo).

Ora vediamo più analiticamente il funzionamento tipico di questa tipologia di prodotto.

Cominciamo coI dire che i dispositivi che utilizziamo (pc, tablet, cellulari, televisori) si chiamano Client.

Quando digitiamo un indirizzo da visitare (es: https://medium.com), tramite tutta l’infrastruttura di rete (l’hotspot, il router, la rete dati del cellulare) non facciamo altro che chiedere al server che ospita il sito che vogliamo visitare di mostrarci una pagina. Il server riceve questa richiesta, la elabora e manda il risultato al Client (ad esempio il pc con cui stiamo navigando) che semplicemente ne mostra il risultato. Nella pagina che sto guardando posso avere dei collegamenti (link) per richiedere al server di elaborare ed inviarmi altre pagine oppure delle schede da compilare (form) e dei pulsante per inviare al server i dati che ho inserito.

Tutto il funzionamento del software web è riassunto nella frase “il server elabora”. Rimaniamo sull’esempio del home-banking, analizzando un’operazione comune. Quando richiedo il mio saldo e lista movimenti il software installato sul server controlla nel database della banca tutti i movimenti in entrata ed uscita che ci sono stati sul conto, controlla la valuta di ogni operazione e invia al nostro dispositivo una tabella con il riepilogo delle informazioni richieste e il totale del mio conto.

Voglio sottolineare il concetto che, in questo esempio, il client fa poco, possiamo dire che si limita ad inviare richieste e mostrare le risposte.

Sul server sono presenti i dati, organizzati in Database e il programma di elaborazione.

Uno degli aspetti positivi di questo tipo di soluzione è che i costi di sviluppo e mantenimento sono inferiori, non è necessario installare qualcosa su tutti i terminali abilitati, in caso di aggiornamento basta aggiornare il server e immediatamente tutti i client sono aggiornati.

L’aspetto, di contro, negativo è che se il server è bloccato nessuno usa il programma, se la connessione alla rete non funziona il programma non è utilizzabile (Esistono comunque soluzioni che permettono di operare anche in situazioni critiche, ma questo è un aspetto che non affronteremo in questo articolo).

Per gli sviluppatori, il vero punto di forza dei software web rappresenta spesso una nota dolente ma per capire qual’è il punto di forza e perché sia una nota dolente dobbiamo prima analizzare com’è cambiato negli ultimi anni il rapporto tra un software gestionale e l’utilizzatore.

I software gestionali utilizzati nelle aziende prima dell’era di Internet erano molto rigidi, avevano precise logiche di funzionamento e le aziende si adeguavano forzatamente a queste logiche. Il perché era semplice: il costo eccessivo delle personalizzazioni. Aggiungere anche un solo campo laddove non era previsto o modificare una routine di calcolo prevedeva tutta una serie di valutazioni e attività di sviluppo (programmazione, debug, correzione, stress test) presso la casa di produzione del software, successivamente un tecnico doveva recarsi in azienda con l’aggiornamento caricato su floppy disk, installarlo prima sul server e poi uno ad uno su tutti i client e, anche se non si verificavano problemi, era normale che il software rimanesse fermo alcune ore. In uno dei miei primi lavori mi occupavo proprio dell’aggiornamento di software in una catena di esercizi aperta al pubblico nella mia città. Nel giorno programmato, io e altri due tecnici ci presentavamo al punto vendita per aggiornare i software, quel giorno l’attività del punto vendita era parzialmente compromessa appunto perché non avevano il software e i pc a disposizione.

Oggi capita che un cliente mi manda un messaggio con scritto: “mi puoi aggiungere un campo per registrare l’informazione X sulla scheda cliente”, e nel giro di un paio d’ore la richiesta è soddisfatta e pronta per essere utilizzata senza che nessuno si sia accorto di qualche interruzione.

Questa eccessiva velocità e semplicità di aggiornamento, il nostro famoso punto di forza, però non è sempre un bene perché si tende ad aggiungere, togliere e modificare funzioni senza analizzare a fondo l’impatto che queste modifiche hanno sull’ecosistema, ed ecco la nota dolente.

Capita a volte che gli aggiornamenti siano talmente rapidi e improvvisi che alcuni operatori si ritrovano la schermata di gestione modificata senza essere stati adeguatamente formati sulle nuove funzionalità, generando talvolta errori e confusione.

Pensate ad esempio alla differenza che intercorre tra gli aggiornamenti di alcuni software dove le novità sono presentate prima, divulgate e poi distribuite mesi dopo quando tutti le stiamo aspettando e cosa succede quando aprite la solita app che usate tutti i giorni e la trovate cambiata senza preavviso.

--

--