TPSI
TPSI
Iso/Osi:
Nel 1983, l'ISO (International Standard Organization) ha pubblicato lo standard
OSI, che definisce un modello di architettura di rete organizzato in 7 livelli:
1. Livello Fisico
○ Si occupa dei mezzi fisici e delle tecnologie per trasmettere dati,
come cavi in fibra ottica, cavi in rame e aria.
○ Include standard come Bluetooth e NFC e parametri come la
velocità di trasmissione dei dati.
2. Livello di Collegamento Dati (Data Link)
○ Gestisce la connessione tra due macchine attraverso una rete.
○ Si occupa dei frame di dati, controllo del flusso e degli errori.
○ Ethernet è un esempio di standard a questo livello.
○ Diviso in due sottolivelli: Media Access Control (MAC) e Logical
Link Control (LLC).
3. Livello di Rete
○ Trasferisce pacchetti di dati attraverso la rete dal computer di
origine a quello di destinazione.
○ La trasmissione non è sempre affidabile; i pacchetti possono essere
scartati in caso di malfunzionamento o congestione.
4. Livello di Trasporto
○ Trasferisce segmenti tra processi in esecuzione su due computer
della rete.
○ Può rendere la comunicazione affidabile gestendo errori come
pacchetti persi o disordinati.
○ Utilizza protocolli come TCP o UDP.
5. Livello di Sessione
○ Gestisce la sessione di comunicazione tra processi in esecuzione su
due computer.
6. Livello di Presentazione
○ Assicura che i dati siano trasmessi in formati standard.
○ Aggiunge un presentation header per specificare la codifica, il
formato degli allegati e la compressione o crittografia (es.
SSL/TLS) delle e-mail.
7. Livello di Applicazione
○ Interagisce con le applicazioni come programmi di posta
elettronica o browser.
○ Gestisce l'input e l'output dei dati e stabilisce la connessione con i
livelli inferiori.
○ Per le e-mail, aggiunge un application header con informazioni sul
protocollo (es. SMTP).
HTTP/HTTPS:
HTTP (HyperText Transfer Protocol) è un protocollo di comunicazione che
permette al browser di parlare con il server web e di richiedere risorse come
pagine web, immagini e file CSS. Questo avviene inviando richieste HTTP al
server, che risponde con dati testuali non crittografati. HTTP è un protocollo a
livello di applicazione nel modello OSI, utilizzato per la comunicazione di rete.
Dopo che il browser ha ricevuto la risposta dal server e ha completato il
rendering della pagina, la connessione HTTP può essere chiusa. Se il browser
necessita di ulteriori risorse, invia nuove richieste HTTP per ottenerle. Questo
ciclo di richiesta e risposta HTTP si verifica ogni volta che si visita una pagina
web o si interagisce con un sito tramite il browser.
HTTPS è una versione sicura di HTTP. La S finale sta per "Secure" e indica che
la comunicazione tra il browser e il server è protetta tramite crittografia. Questo
protegge i dati scambiati da potenziali tentativi di intercettazione e lettura da
parte di terzi.
UDP:
Il protocollo UDP (User Datagram Protocol) è un componente essenziale della
suite TCP/IP, utilizzato per la comunicazione veloce e senza connessione su reti
di computer. A differenza del TCP, UDP non garantisce la consegna o l'ordine
dei pacchetti, rendendolo adatto per applicazioni come lo streaming media e i
giochi online, dove la velocità è prioritaria rispetto all'affidabilità assoluta dei
dati. La sua implementazione riduce il carico di gestione della rete, migliorando
l'efficienza complessiva e supportando applicazioni che richiedono
aggiornamenti rapidi e tempestivi dei dati.
Java/C++:
Java e C++ sono due linguaggi di programmazione con alcune somiglianze
nella sintassi e nei tipi di dati, ma differiscono significativamente nei loro
approcci e nelle caratteristiche principali.
Java è stato sviluppato inizialmente nel 1991, con la prima versione pubblica,
Java 1.0, rilasciata il 23 maggio 1995.
C++ è stato creato nel 1985.
Java è progettato per essere più vicino all'utente rispetto a C++. Questo significa
che è orientato verso un alto livello di astrazione, il che rende il codice più
portabile ma può influire sulla performance in alcune applicazioni critiche.
C++, invece, è più vicino all'hardware e al sistema operativo, il che lo rende più
veloce in situazioni in cui è necessario massimizzare l'efficienza e il controllo a
basso livello.
XML/XSD:
La differenza principale tra XML e XSD è che XML è un linguaggio di markup
estensibile utilizzato per creare e condividere dati tra sistemi incompatibili,
mentre XSD è un linguaggio utilizzato per definire la struttura e i vincoli di
validità di documenti XML.
XML (Extensible Markup Language) è stato sviluppato dal World Wide Web
Consortium (W3C). È un linguaggio di markup che permette di descrivere dati
attraverso l'uso di tag, facilitando l'interscambio di documenti e dati tra diverse
applicazioni e database.
Un documento XML può essere "ben formato" (well-formed) se rispetta le
regole sintattiche di XML. Per essere "valido", deve anche conformarsi alle
regole semantiche definite da uno schema XML (XSD) associato. Lo schema
XSD definisce la struttura esatta e i vincoli di validità che i documenti XML
devono seguire.
Grazie agli schemi XSD, è possibile automatizzare l'elaborazione dei dati XML
utilizzando parser, software capaci di estrarre e gestire automaticamente le
informazioni dai documenti XML. I parser possono anche validare i documenti
rispetto agli schemi XSD specificati, assicurando che i dati rispettino la struttura
definita.
In sintesi, mentre XML è leggibile e modificabile dagli esseri umani grazie alla
sua natura basata su markup, XSD fornisce una struttura formale per garantire la
validità e l'automazione nell'elaborazione dei dati XML attraverso l'uso di parser
e la definizione di regole di validità.
Packet Switching:
Durante la Guerra Fredda, quando era realistico temere un attacco nucleare su
larga scala tra Stati Uniti e Unione Sovietica, nacque la necessità di sviluppare
tecnologie resilienti per le comunicazioni, che potessero funzionare anche in
condizioni di attacco devastante. In questo contesto, emerse la tecnologia del
packet-switching, oggi fondamento dell'Internet moderna.
Web Service:
I web service sono metodi di comunicazione e scambio di dati tra diverse
applicazioni di sistemi distribuiti su una rete, come Internet. Consentono alle
applicazioni di interagire tra loro indipendentemente dal linguaggio di
programmazione o dal sistema operativo utilizzato.
Esistono due protocolli principali utilizzati per implementare i web service, soap
e rest.
JSON:
L'XML Working Group ha concepito XML nel 1996 e rilasciato la sua versione
nel 1998, derivando da SGML. È stato sviluppato per la pubblicazione
elettronica su larga scala, distinguendosi dall'HTML per la serializzazione dei
dati.
JSON è stato rilasciato nel 2001 da Douglas Crockford e Chip Morningstar,
derivato da JavaScript. Entrambi sono formati leggibili basati su testo per la
creazione, lettura e decodifica di dati nelle applicazioni reali. Sono gerarchici e
indipendenti dalla lingua per lo scambio di dati strutturati.
XML è flessibile nel rappresentare dati complessi come documenti e
transazioni, leggibile sia da macchine che da esseri umani. JSON è leggero e
efficiente per l'interscambio dati tra applicazioni diverse, senza fornire
informazioni sullo schema o sul tipo dei dati.
Una differenza chiave è che JSON è più efficiente nell'uso della memoria, ideale
per gestire grandi volumi di dati. È ampiamente supportato su diverse
piattaforme senza problemi significativi di compatibilità, mentre XML può
presentare sfide di interoperabilità tra diversi linguaggi di programmazione.