All’inizio il web era una marea di pagine statiche, poi si è capito che potevamo fare in modo che i vari server prima elaborassero i dati e poi li servissero al browser in formato HTML, in questo modo potevamo fare dei calcoli ed analizzare database su server, così nacquero le pagine asp, aspx, php etc.. utilizzate con script lato server come php, jscript o vbscript o altro ancora. Successivamente si assistette allo sviluppo dei web services ( servizi web ) che consentivano di utilizzare routine sui server distribuiti in tutto il web, in sostanza un web service non è altro che un server di funzioni che restituisce in formato xml su protocollo http il risultato. Immaginatevi che io implementi sul mio server la funzione del calcolo della somma tra due numeri
int Somma(int a, int b)
in sostanza creo questa funzione sul mio server. Supponiamo per assurdo che altri sviluppatori non sappiamo implementare la funzione che io ho, quindi o gratuitamente o a pagamento io permetto a loro di utilizzare la funzione “Somma” da computer remoti; ecco nascere una libreria di funzioni globale, il sogno di ogni programmatore ( se le funzioni esportate fossero gratuite ).
SOAP ( Simple Access Object Protocol ) è lo standard per far colloquiare il server ed il client tramite il linguaggio xml su protocollo http. Sviluppare un’applicazione che usi soap senza una libreria di funzioni non l’augurerei a nessuno, infatti il linguaggio come detto più volte è xml con cui oggi si fa di tutto, dai feed alla gestione di dati remoti.
Sono nati per questo motivo dei parser in grado di generare codice xml partendo da delle funzioni, in pratica il programmatore usa solo quelle. Microsoft ha creato un toolkit, IBM ha fatto lo stesso per utilizzare SOAP in java ed altri hanno costruito il proprio parser ognuno per la sua piattaforma, ma con linguaggio remoto comune ( SOAP appunto ).
In definitiva con SOAP è possibile far colloquiare le applicazioni nel web, avere internet piena di queste librerie di funzioni ed il programmatore che non fa altro che utilizzarle da Windows, Mac, Linux…. il sogno di ogni sviluppatore di codice, scrivere applicativi distribuibili su qualsiasi piattaforma, cosa che stanno facendo anche da prima java e poi .NET, con la differenza che in questo caso le funzioni non sono locali, ma remote. Io vedo una grande espansione di questo modo di concepire la programmazione, unico neo forse la velocità delle applicazioni su web che di certo non sono come quelle locali, ma questo è un altro problema.