Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Json: più leggero perché non ci sono tag ma linguaggio standard comprensibile da tutti
Javascript è lato-client
Pacchetto di deploy
Le servlet sono scritte in java e vengono utilizzate per creare siti web dinamici. Le servlet
gestiscono più richieste contemporaneamente.
Nelle servlet ci sono due file: html e java. Utilizzano XML. Nelle servlet non c’è GUI, va integrata
separatamente.
Un processo è un’applicazione, mentre un thread è una suddivisione del processo che permette di
eseguire operazioni parallelamente
XMLOrientedTag
Linguaggio di scripting:
Rpc e cgi
Unità 1
I sistemi distribuiti
Le architetture dei sistemi informativi si sono sviluppate ed evolute nel corso degli anni passando da schemi
centralizzati a modelli distribuiti.
1. Nei sistemi centralizzati le applicazioni vengono elaborate da un singolo processore o host
2. Nei sistemi distribuiti le applicazioni vengono elaborate da più host che collaborano tra loro
Nei sistemi distribuiti sono presenti diversi componenti:
1. client: utilizzatore di servizi messi a disposizione da altre applicazioni
2. server: fornitore di servizi usati da altre applicazioni
3. actor: ricopre sia il ruolo di client che quello di server
Vantaggi
1. Affidabilità
2. Integrazione
3. Trasparenza
4. Economicità
5. Apertura
6. Connettività e collaborazione
7. Prestazioni e scalabilità
8. Tolleranza ai guasti
Svantaggi
1. Produzione di software
2. Complessità
3. Sicurezza
4. Comunicazione
Cluster computing: un sistema distribuito costituito da un insieme di nodi ad alte prestazioni interconnessi
tramite una rete locale ad alta velocità. Il sistema è omogeneo, cioè i singoli nodi hanno lo stesso sistema
operativo, hardware molto simile, e sono connessi attraverso la stessa rete
Grid computing: è un sistema distribuito di calcolo altamente decentralizzato composto da un gran numero
di nodi ETEROGENEI disposti a griglia (grid). Nel grid computing le risorse sono distribuite. I problemi sono
suddivisi in piccole unità che vengono disseminate nella rete.
Architettura client server: nell'architettura il server offre dei servizi mentre il client li richiede
Architettura web centric: segue lo schema dell'architettura client server. In questo caso il web diventa un
server che offre servizi
Architettura cooperativa: evoluzione dell'architettura client server, che si basa su entità autonome che
esportano e richiedono servizi secondo il modello di sviluppo della programmazione ad oggetti.
L'incapsulamento infatti abbatte le differenze tra prodotti hardware e software
Architettura a livelli: ideata per la suddivisione del carico di lavoro con l'introduzione degli strumenti
middleware, uno strato software che si colloca sopra il sistema operativo e sotto i programmi applicativi. Si
forma quindi un'architettura a 3 livelli
Architettura completamente distribuita: formata da gruppi di entità paritetiche che collaborano tra loro
http
Il protocollo HTTP (HyperText Transfer Protocol) è un protocollo di comunicazione client-server che viene
utilizzato per il trasferimento di informazioni su internet.
Quando un client invia una richiesta HTTP a un server, questa viene suddivisa in tre parti: la linea di
richiesta, l’header (contiene informazioni per identificare il messaggio) e il corpo del messaggio.
La linea di richiesta contiene tre parti principali: il metodo, l'URL e la versione di HTTP.
1. Il metodo indica il tipo di richiesta che il client sta facendo (GET se è contenuta nell’URL, POST se è
contenuta nel body).
2. L'URL indica l'indirizzo della risorsa richiesta.
3. La versione di HTTP indica la versione del protocollo utilizzata.
Una volta che il server riceve la richiesta HTTP, esso invia una risposta al client. La risposta HTTP è composta
da tre parti: la linea di stato, gli header e il corpo del messaggio. La linea di stato indica il successo o il
fallimento della richiesta.
Gli header della risposta contengono informazioni aggiuntive sulla risposta, come ad esempio il tipo di
contenuto della risorsa restituita o le informazioni di autenticazione richieste dal server.
Il corpo del messaggio contiene i dati restituiti dal server al client, come ad esempio il codice HTML di una
pagina web o il contenuto di un file multimediale.
Versioni http
1. 0.9: l’unico metodo usato è il get e la connessione viene chiusa ogni volta che il client risponde ad
una richiesta
2. 1.0 vengono aggiunti post, put (permette di modificare il codice) e head (richiede l’header senza
percorso file)
3. 1.1 sono introdotte le connessioni persistenti
4. 2.0
http è un protocollo
1. standard: indipendente dal tipo di server
2. generico: riguarda tutti i tipi di file
3. stateless: richieste indipendenti: il server non ricorda le richieste precedenti
Con il termine di applicazione Web viene definito il software sviluppato e utilizzato attraverso tecnologie
Web
e linguaggi specifici.
Modello Client-server
Il modello client-server è costituito da un insieme di host che gestiscono una (o più) risorse, i server, e da un
insieme di client che richiedono l'accesso ad alcune risorse distribuite gestite dai server. Un host, avendo
più processi da gestire, può svolgere il ruolo sia di client che di server.
Esistono due tipi di comunicazione:
Nell’architettura client-server ogni host si comporta da server per il livello precedente e da client per quello
successivo
Presentation layer: è composto dalle procedure dedicate all’acquisizione e alla presentazione dei
dati dell’utente
Application layer: elabora le informazioni ricevute dal livello di presentazione
Resource management layer: gestisce le risorse o i servizi necessari per il corretto funzionamento
dell'applicazione
1 tier
Non è un’architettura client-server, e tutti i compiti vengono eseguiti da un solo elaboratore
2 tier
In questa architettura i compiti sono suddividi tra client e server.
Possiamo individuare due sottocategorie di architetture a due livelli:
1. il modello thin-client, in cui il client gestisce l'interfaccia utente e l'elaborazione iniziale delle
richieste dell'utente e il server si occupa della logica dell'applicazione e dell'accesso ai dati.
2. il modello thick-client, in cui il server gestisce i dati e il client è responsabile di presentazione e
logica applicativa
3 tier
Client: front-end (presentation layer)
Middleware: middle tier (application layer)
server: back-end (resource management layer)
I vantaggi dell'introduzione del middleware sono notevoli, soprattutto in termini di prestazioni, della
scalabilità e della sicurezza.
n-tier
Generalizzano il modello client-server 3 tier, in cui vengono introdotti un numero qualsiasi di livelli
intermedi
Un programma client richiede al server dei servizi. Quest'ultimo rimane in ascolto tramite un socket,
composto da numero di porta + indirizzo IP. Client e server per comunicare utilizzando il protocollo TCP/IP.
Socket
Affinché un processo mittente comunichi con quello destinatario deve identificarlo in modo univoco,
attraverso l’uso dei “Socket” formati da: indirizzo IP (Identificativo Host) + N Porta (Identificativo Servizio).
Un numero di porta non può essere associato a più processi, ma un server può offrire più servizi, ciascuno
su un’apposita porta.
Per potersi connettere il client deve conoscere a priori gli identificatori del server.
Es: www. Dove più server possiedono le altre pagine che possono essere inviate ai client che ne fanno
richiesta tramite browser.
Il Client comunica solo con il server non con altri client, più client possono invece comunicare con lo stesso
server. Se un server viene consultato da troppi client contemporaneamente, potrebbe non essere in grado
di rispondere a tutti ed entrare in congestione.
P2P Decentralizzato
Ogni Peer può essere sia Client che server, ed è impossibile localizzare una risorsa mediante un IP
Statico. Esso è capace di adattarsi a ogni cambiamento dei nodi senza richiedere l’intervento di
nessuna entità centralizzata, come un server.
P2P Centralizzato
È presente un server centrale che detiene il controllo sulla rete, mentre i client si occupano di
conservare i dati e permettono il download delle risorse.
P2P Ibrido
Il P2P ibrido è parzialmente centralizzato. Al suo interno sono presenti alcuni peer (supernodi) che hanno
funzione di indicizzazione, mentre altri (leaf peer), sono nodi comuni.
Per l’utilizzo dei socket è necessario però aggiungere alla struttura una serie di parametri: gli indirizzi, il
protocollo e il numero di porta, e il tipo del protocollo.
Ogni Sistema Operativo mette a disposizione le Socket API che ci permettono di utilizzare diverse funzioni
tra cui:
Server Socket () / Socket (): crea un nuovo socket
Listen: aspetta i messaggi in ingresso
Close: termina l’utilizzo di un socket
Send () / Write (): trasmette i dati su una connessione attiva
Esistono varie famiglie di Socket dove ognuna riunisce i Socket che utilizzano gli stessi Protocolli:
Stream Socket
Uno stream socket, anche noto come socket di tipo "SOCK_STREAM", è un tipo di socket orientato alla
connessione. Utilizza il protocollo di trasporto TCP (Transmission Control Protocol) per garantire la
consegna affidabile dei dati. Con un socket di stream, i dati vengono inviati in un flusso continuo di byte
senza limiti di dimensione del messaggio. Il socket di stream gestisce l'affidabilità e l'ordine dei dati in modo
trasparente per le applicazioni. Ciò significa che i dati inviati con un socket di stream verranno consegnati
all'altro lato nello stesso ordine in cui sono stati inviati, senza perdita di dati e con garanzia di consegna.
Datagram Socket
Un datagram socket, anche noto come socket di tipo "SOCK_DGRAM", è un tipo di socket senza
connessione. Utilizza il protocollo di trasporto UDP (User Datagram Protocol) che è un protocollo senza
connessione e non affidabile. Con un socket di datagram, i dati vengono inviati sotto forma di pacchetti
indipendenti chiamati datagrammi. I datagrammi possono essere inviati in qualsiasi ordine e non viene
garantita la consegna o l'ordine dei pacchetti. Ciò significa che i dati inviati con un socket di datagram
potrebbero essere persi, duplicati o consegnati in ordine diverso rispetto all'invio.
Unicast è un metodo di indirizzamento in cui un mittente invia dati a un singolo destinatario. In una
comunicazione unicast, il mittente e il destinatario stabiliscono una connessione diretta one-to-one,
solitamente tramite il protocollo TCP. Il mittente invia i dati al destinatario specifico utilizzando l'indirizzo IP
unico del destinatario come destinazione.
Esempi di Multicast sono per esempio: Video Conferenze, Giochi con Multiplayer e anche tabelle del DNS.
CAPITOLO 3
PHP
Le pagine presenti sul web possono essere statiche o dinamiche
1. Statiche: presentano gli stessi contenuti a tutti gli utenti che vi accedono
2. Dinamiche: possono mostrare diversi contenuti in relazione alle azioni compiute dagli utenti stessi
(es. login)
La sintassi prevede il tag di apertura <? PHP e di chiusura? >. Le pagine PHP contengono parti di codice
HTML e questa caratteristica prende il nome di HTML enbedded. Quello che si trova fuori dai tag di
apertura rimane inalterato, quello che si trova all’interno viene interpretato da zend e i risultati in formato
HTML verranno inviati al browser
È un linguaggio interpretato che viene eseguito lato server, il che significa che il codice PHP viene
elaborato sul server prima di inviare i risultati al client.
Sintassi: PHP utilizza una sintassi simile a molti altri linguaggi di programmazione, come C, Java e Perl. I
comandi PHP sono incorporati all'interno dell'HTML, ma vengono delimitati da tag speciali <?php e ?>.
Variabili: In PHP, le variabili vengono create dinamicamente senza la necessità di dichiarare il tipo. I tipi di
dati supportati includono numeri interi, floating-point, stringhe, booleani, array, oggetti e risorse.
Operatori: PHP supporta una vasta gamma di operatori, tra cui operatori aritmetici (+, -, *, /), operatori di
confronto (==, !=, <, >), operatori logici (&&, ||) e altri.
Strutture di controllo: PHP offre una serie di strutture di controllo, come istruzioni if-else, cicli for, cicli
while e cicli foreach per iterare sugli array. È possibile utilizzare anche costrutti come switch-case e try-
catch per gestire eccezioni.
Funzioni: È possibile definire le proprie funzioni in PHP e riutilizzarle all'interno del codice. PHP offre anche
numerose funzioni predefinite per eseguire operazioni comuni, come la manipolazione delle stringhe,
l'elaborazione delle date, la gestione dei file e molto altro ancora.
Gestione dei dati: PHP supporta una varietà di database, tra cui MySQL, PostgreSQL, Oracle e molti altri. Ci
sono estensioni PHP disponibili per connettersi ai diversi database e manipolare i dati in modo sicuro.
Gestione delle sessioni e dei cookie: PHP offre funzionalità incorporate per la gestione delle sessioni
utente e dei cookie. Ciò consente di mantenere lo stato dell'utente tra le richieste e di memorizzare
informazioni sul client.
Programmazione orientata agli oggetti (OOP): PHP supporta la programmazione orientata agli oggetti,
consentendo agli sviluppatori di definire classi, creare oggetti e utilizzare concetti come l'ereditarietà,
l'incapsulamento e il polimorfismo.
1. Esistono numerose librerie e framework (è un'infrastruttura software che fornisce strumenti, librerie e
convenzioni di programmazione per semplificare lo sviluppo di applicazioni.)in PHP i più popolari che
semplificano lo sviluppo di applicazioni web complesse sono Laravel, Symfony, CodeIgniter e Zend
Framework.
2. Integrazione con HTML: PHP può essere facilmente integrato all'interno del codice HTML, consentendo di
creare pagine web dinamiche in cui il contenuto viene generato in modo dinamico in base alle variabili e ai
dati.
CREAZIONE CLASSE:
Una classe rappresenta un modello o una struttura che definisce le caratteristiche e i comportamenti di
un oggetto. Un oggetto è un'istanza di una classe e può avere delle proprietà, che rappresentano le
caratteristiche dell'oggetto, e dei metodi, che rappresentano i comportamenti o le azioni che l'oggetto può
compiere.
Class Carrello{
Var $articoli=array();
var $quantità=array();
Nel primo esempio, la classe "Carrello" rappresenta un modello di un carrello di acquisti. Ha due proprietà:
"$articoli" e "$quantità", entrambe dichiarate come array. Queste proprietà contengono rispettivamente
l'elenco degli articoli presenti nel carrello e la quantità di ciascun articolo.
Function aggiungi_carrello($articoli,$quantità){}
Nel secondo esempio, la funzione "aggiungi_carrello" è esterna alla classe "Carrello". Le funzioni esterne
possono essere utilizzate per effettuare operazioni specifiche e manipolare gli oggetti di una classe. Nel
caso specifico, la funzione "aggiungi_carrello" prende due parametri: "$articoli" e "$quantità". Questa
funzione potrebbe essere utilizzata per aggiungere nuovi articoli al carrello specificato.
Nel contesto di una classe, è comune utilizzare il riferimento "$this" per accedere alle proprietà e ai metodi
della stessa classe. Ad esempio, se desideri accedere alla proprietà "$articoli" all'interno di un metodo della
classe "Carrello", puoi utilizzare "$this->articoli". La notazione "->" indica l'appartenenza del metodo alla
classe.
class Carrello {
$this->articoli[] = $articolo;
$this->quantità[] = $quantità;
In PHP, il costruttore è un metodo speciale di una classe che viene chiamato automaticamente quando
viene creata un'istanza di quella classe. Il nome del costruttore è lo stesso della classe stessa.
● Nelle prime versioni di PHP, come PHP4, i costruttori venivano definiti con il nome della classe. Ad
esempio, se avevi una classe chiamata "Carrello", il suo costruttore avrebbe avuto il nome
"Carrello". Ecco un esempio:
class Carrello {
function Carrello() {
● Tuttavia, a partire da PHP5, è stata introdotta una nuova sintassi per i costruttori utilizzando il
metodo speciale "__construct". Questa sintassi è diventata la forma consigliata per definire i
costruttori. Ecco un esempio:
class Carrello {
function __construct() {
La sintassi "__construct" ha sostituito il vecchio stile di definizione del costruttore con il nome della classe.
È importante notare che se viene definito sia il costruttore nel vecchio stile che il costruttore utilizzando
"__construct", verrà utilizzato solo il costruttore definito con "__construct"
● Nella versione PHP7, viene utilizzata la parola chiave "public" per specificare che il costruttore è
accessibile pubblicamente. Tuttavia, è possibile utilizzare anche le parole chiave "private" o
"protected" per definire un costruttore con diversi livelli di visibilità a seconda delle esigenze.
ESEMPIO:
class Carrello {
Per quanto riguarda l'ereditarietà dei costruttori, in PHP è possibile definire un solo costruttore per una
classe. Ciò significa che una classe figlia eredita il costruttore della classe genitore. Se desideri aggiungere
funzionalità al costruttore della classe figlia, puoi utilizzare la parola chiave "parent" per richiamare il
costruttore della classe genitore. Ad esempio:
class ClasseGenitore {
function __construct() {
// Codice del costruttore della classe genitore
}
}
AJAX
Ajax (Asynchronous JavaScript and XML) è un insieme di tecnologie che consente di creare applicazioni
web interattive e dinamiche. L'obiettivo principale di Ajax è quello di migliorare l'esperienza dell'utente
consentendo di aggiornare parti specifiche di una pagina web senza doverla ricaricare completamente.
Una delle sfide di Ajax è la compatibilità tra i diversi browser. In passato, alcuni browser non supportavano
completamente le funzionalità di Ajax, richiedendo l'installazione di add-on o l'implementazione di
soluzioni alternative. Tuttavia, negli ultimi anni, il supporto per Ajax è diventato molto più diffuso e
praticamente tutti i browser moderni lo supportano senza bisogno di ulteriori aggiunte.
Un'altra cosa importante da notare è che Ajax non si limita solo a chiamate al server per ottenere dati. È
possibile utilizzare Ajax per inviare dati al server, ad esempio attraverso richieste HTTP POST, consentendo
all'utente di interagire con un modulo e inviare i dati al server senza ricaricare la pagina.
Inoltre, Ajax può essere utilizzato in combinazione con diverse tecnologie server-side, come PHP, per
elaborare le richieste del client e restituire le risposte appropriate in formato JSON o HTML.
Complessivamente, Ajax ha rivoluzionato il modo in cui le applicazioni web interagiscono con gli utenti,
consentendo un'esperienza più fluida e dinamica
La classe usata è XMLHTTPREQUEST, ma non va bene per tutti i browser. Le richieste vengono formulate
con il protocollo HTTP e la forma di variabile può essere di tipo GET e POST.
Siccome XML permette di effettuare richieste multiple indipendenti, questo tende a creare della latenza,
ossia il tempo di attesa, che rappresenta uno dei problemi di questa tecnologia.
SERVLET
I servlet sono componenti del lato server utilizzati per sviluppare applicazioni web dinamiche in Java. Le
servlet sono installate (dall'inglese "deployed") all'interno di un Servlet Container, ossia un particolare
ambiente di lavoro, detto container, che si occuperà di tutti i loro aspetti, gestendone l'intero ciclo di vita e
svincolando così il programmatore dalla loro gestione. I programmi che implementano le specifiche dei
servlet possono girare all'interno di qualunque Servlet Container e non sono vincolati ad un particolare
server. Lo standard delle servlet rientra all'interno di un vasto insieme di standard detto Java EE. Il package
che contiene classi e interfacce di riferimento è javax.servlet, se si utilizza sul web si usa invece
javax.servlet.http.HttpServlet.
Nella versione più recente, tutti i pacchetti javax.servlet sono stati rinominati in jakarta.servlet).
1. Init() viene chiamato durante l'istanziazione. Qui, la servlet istanza tutte le risorse, incluse le
variabili globali, che verranno poi utilizzate per gestire le richieste.
2. Service() viene usato subito dopo la chiamata del metodo init(). È incaricato di gestire le richieste
da parte del client.
3. Destroy() è utilizzato per chiudere la servlet. In prospettiva di un prossimo caricamento della
servlet, vengono effettuati salvataggi di informazioni.
Le richieste inviate dal client al server sono rappresentate dall’oggetto HttpServletRequest, con cui la
Servlet ottiene i parametri inviati dal client.
Le risposte create dalla Servlet per il client sono invece identificate dall’oggetto HttpServletResponse.
CAPITOLO 5
JAVA SERVER PAGES
Le Java Server Pages (JSP) sono una tecnologia utilizzata nello sviluppo web per la creazione di pagine
dinamiche. Esse permettono di combinare codice Java con il markup HTML per generare pagine web
dinamiche.
Le JSP sono simili alle pagine HTML tradizionali, ma consentono l'inserimento di codice Java all'interno del
documento, racchiuse all’interno del tag <%...%>. Questo codice viene eseguito lato server, consentendo la
generazione dinamica di contenuti.
A differenza delle servlet, la compilazione in JSP avviene in automatico, senza la necessità di compilare il
codice java e collocare il file .class nella directory classes.
In breve, la differenza principale tra le due è che le servlet separano il codice Java dalla presentazione
HTML, mentre le JSP permettono di incorporare il codice Java all'interno delle pagine stesse.
In molti casi, le JSP vengono utilizzate in combinazione con le servlet per ottenere il massimo delle
funzionalità.
1. Facilità di utilizzo: le JSP utilizzano il markup HTML, che è familiare a molti sviluppatori web, e
consentono di incorporare il codice Java direttamente nella pagina.
2. Riutilizzabilità: il codice Java può essere organizzato in componenti riutilizzabili, come classi e
librerie, che possono essere utilizzate in più pagine JSP.
3. Separazione del ruolo: le JSP permettono di separare il markup HTML dalla logica di business,
facilitando il lavoro di sviluppatori e progettisti.
4. Scalabilità: le JSP possono gestire un grande volume di richieste concorrenti e possono essere
distribuite su più server per garantire l'alta disponibilità dell'applicazione.
5. Facilità di scrittura: per il programmatore risulta essere molto più agevole scrivere codice in questa
maniera poiché effettua un ragionamento analogo alla stesura di codice PHP. Il codice verrà poi
automaticamente convertito in servlet e visualizzato senza ulteriori interventi necessari .
1. Complessità: l'integrazione del codice Java all'interno del markup HTML può portare a una
complessità maggiore rispetto a una pagina HTML statica.
2. Mancanza di separazione: se non viene adottata una corretta separazione dei ruoli, il codice Java
può essere mescolato con il markup HTML, rendendo il codice più difficile da leggere e mantenere.
SCRIPTING-ORIENTED TAG
1. Tag di scriptlet <% %>: I tag di scriptlet consentono di inserire codice Java all'interno di una JSP. Il
codice inserito all'interno di questi tag viene eseguito quando la JSP viene elaborata dal server
2. Tag di espressione <%= %>: I tag di espressione consentono di visualizzare il risultato di
un'espressione Java all'interno del markup HTML generato. Il risultato dell'espressione viene
convertito in una stringa e visualizzato nella pagina.
3. Tag di dichiarazione <%! %>: I tag di dichiarazione vengono utilizzati per dichiarare variabili, metodi
o altre costruzioni Java che saranno disponibili in tutta la JSP. Questi elementi vengono solitamente
inseriti nella sezione di definizione della JSP.
4. Tag di direttiva <%@ %>: I tag di direttiva forniscono istruzioni al container JSP, specificando
configurazioni e importazioni. Ad esempio, la direttiva page viene utilizzata per specificare attributi
come il tipo di contenuto, le direttive di inclusione e altre configurazioni globali.
5. Template text: tutte le parti di testo che non sono definite come elementi JSP sono copiate nella
pagina risultante.
6. Tag di azione: istruzioni specifiche che controllano il comportamento delle JSP.
CAPITOLO 6
La tecnologia Web Service tiene i dettagli implementativi nascosti da un’interfaccia in XML. Il sistema quindi
è utilizzato per far comunicare diversi elaboratori presenti in rete. Per fare ciò si associa all’applicazione
un’interfaccia software che permette di esporre il servizio offerto dal server, in questo modo il client che
desidera usufruire del servizio può collegarsi tramite l’interfaccia software.
● Web Service REST (medium Http (POST,GET,PUT,DELETE) e formato XML, JSON, Text)
Nella definizione di un Web Service si usa come protocollo di trasporto l’HTTP mentre per la richiesta e la
risposta si utilizza XML.
● Protocol indipendent: deve essere possibile aggiornare in qualsiasi momento le implementazioni senza
modificare le interfacce
1. Simple Object Access protocol (SOAP): Per scambio di messaggi per l’invocazione di servizi remoti
2. Principi architetturali del web che si concentra sulla descrizione di risorse e sul modo di individuarle
nel web
REST e SOAP sono due diversi approcci alla trasmissione dei dati online. Nello specifico, entrambi
definiscono come creare interfacce di programmazione delle applicazioni (API) che consentono la
comunicazione dei dati tra applicazioni web.
PROTOCOLLO SOAP
Protocollo per scambiare messaggi relativi al Web Service. È basato su XML per lo scambio di informazioni
su un ambiente distribuito. SOAP permette di eseguire chiamate a metodi di oggetti remoti, cioè oggetti
che risiedono su computer o dispositivi diversi all'interno di una rete. Questo protocollo consente di inviare
richieste e ricevere risposte da oggetti distribuiti su nodi remoti, consentendo la comunicazione tra
applicazioni software distribuite su reti eterogenee.
PROTOCOLLO REST
È un approccio alternativo al SOAP, a differenza sua è molto più leggero perché si basa sulla corrispondenza
diretta tra:
● oggetti remoti da leggere/scrivere individuati mediante Uniform Resource Identifiers(URI) (i comuni
link);
● comandi http da applicare agli oggetti(GET,PUT,POST;DELETE).
ARCHITETTURA REST
L’approccio REST i principi che rendono il web adatto a realizzare Web Service si possono riassumere in 5
punti:
II formato utilizzato per mandare e ricevere informazioni con un sistema REST è il JSON; inoltre nell'header
della richiesta si possono aggiungere oggetti come token di autenticazione ed eventuali dati che devono
essere inviati in richieste PUT o POST,possono essere aggiunti come parametri della richiesta o nel body
della stessa. Una sessione attiva verrà eliminata dopo un certo lasso di tempo, forzando l'utente a ricreare
la sessione di tanto in tanto: tale autenticazione non va effettuata a ogni richiesta dato che l'utente può
fornire l'id di sessione nell'header e, quindi, mantenerla aperta.
DIFFERENZE REST-SOAP
API
Le API (Application Programming Interface) sono un insieme di strumenti, regole e protocolli che
consentono a diverse applicazioni software di comunicare tra loro. Le API fungono da intermediari
consentendo a diverse applicazioni o servizi di scambiare informazioni e sfruttare le funzionalità offerte da
ciascuna parte.
Le API Maps, in particolare, si riferiscono alle interfacce di programmazione delle applicazioni che
consentono l'integrazione di funzionalità di mappe e geolocalizzazione all'interno di altre applicazioni o
servizi. Queste API forniscono agli sviluppatori un modo per accedere e utilizzare le funzionalità di
mappatura, come visualizzare mappe interattive, posizionare punti di interesse, calcolare percorsi o
indicazioni stradali e altro ancora.
Le API Maps sono solitamente fornite da provider di mappe come Google Maps, Bing Maps o Mapbox.
Queste API sono composte da un insieme di endpoint, metodi e parametri che gli sviluppatori possono
utilizzare per inviare richieste e ottenere risposte relative alle informazioni sulla mappa. Gli sviluppatori
possono integrare queste API all'interno delle loro applicazioni o servizi, consentendo agli utenti di
interagire con le mappe e le funzionalità di geolocalizzazione.
Le API Maps sono spesso basate su protocolli standard come HTTP e utilizzano formati dati come JSON
(JavaScript Object Notation) per la comunicazione tra le applicazioni client e i server delle API. I dettagli
specifici delle API Maps possono variare a seconda del provider scelto, ma di solito offrono una
documentazione dettagliata che descrive come utilizzare le varie funzionalità e forniscono esempi di codice
per facilitare l'integrazione.
SOAP E REST FATTO DA ME
SOAP è l'acronimo di Simple Object Access Protocol. SOAP L'API consente alle
applicazioni di comunicare messaggi anche se sono scritte in linguaggi di
programmazione diversi. È un protocollo più complesso in termini di sicurezza e
di comunicazione dei dati. Poiché questo protocollo si occupa di messaggi,
l'obiettivo principale è quello di impedire l'accesso non autorizzato attraverso la
sicurezza di WS.
Il Simple Object Access Protocol (SOAP) è un protocollo per l’implementazione di servizi
Web. Presenta una struttura ed uno schema ben preciso e si basa sull’XML, attraverso cui
avviene lo scambio dei dati e la gestione delle risposte.