vuoi
o PayPal
tutte le volte che vuoi
Protocollo DNS - Domain Name System
Il protocollo DNS (Domain Name System) è una base di dati e un servizio che associa ad un nome simbolico (es: www.unisa.it) un indirizzo IP. Questo rende più semplice per le persone trovare ciò che cercano. Il protocollo utilizza il protocollo UDP a livello di trasporto e la porta 53. Questo approccio evita di generare un traffico aggiuntivo proprio del TCP.
L'alias è la possibilità di associare ad un nome complesso da ricordare un nome più semplice da ricordare. Quando un server gestisce un carico troppo elevato, si cerca di replicare il suo contenuto su molte macchine differenti. Il protocollo DNS distribuisce il carico tra le macchine rilasciando ciclicamente indirizzi appartenenti all'intero pool, senza che gli utenti se ne accorgano.
Si potrebbe pensare di risolvere il problema piazzando in un unico punto della terra una macchina che realizzi la risoluzione di tutti i nomi. Tuttavia, questo creerebbe un single point of failure, in quanto se questa macchina dovesse fallire, tutto il sistema sarebbe compromesso.
cade la macchina si blocca tutto), volume di traffico, manutenzione, ecc. Bisogna dunque pensare ad una soluzione distribuitaiterativo: il client contatta il server il quale da il nome del server da contattare. Approccio ricorsivo: Il client contatta il server e il server contatta tutti gli altri per avere l'indirizzo richiesto dal client e restituirglielo. Si crea la cache dns dunque se il server ha già l'indirizzo riesce a restituirlo al client prima. TTL (Time To Leave) è il tempo dopo il quale la cache elimina l'indirizzo del server precedentemente memorizzato.
Architetture multilivello sono tipiche di ambienti proprie della rete. La rete stessa è un Architettura Multilivello. Ogni livello dà e riceve informazioni dall'altro. Indipendenza Logica: posso modificare un livello senza avere ripercussioni sugli altri. Indipendenza fisica: se è possibile modificare la posizione dei file ed i tipi di dati senza intaccare la struttura logica. Livello presentazione: il software di livello più esterno che si occupa di presentare visivamente i dati all'utente. Livello
Logico: prende le richieste e le elabora. Livello Fisico: come vengono conservati nelle memorie di massa. Architettura 1-Tier: tutti e 3 i livelli sono implementati nello stesso software, sono intrecciati e non indipendenti (Es. Word). I problemi possono essere: scalabilità, portabilità, manutenzione. Architettura 2-Tier: il livello fisico è indipendente da quello logico e di presentazione (Es. Word salvando dati sul cloud). Architettura 3-Tier: nascono per le applicazioni sul web in un tempo in cui il modulo di interfaccia diventa di fondamentale importanza ed è soggetto a frequenti aggiornamenti. Se un client entra nel Server comunque non ha accesso immediatamente ai dati (come nel 2-Tier) poiché i dati risiedono del DB server. Vantaggi: Riusabilità, facile manutenzione, sviluppo più veloce. Server web: Tipo di server attraverso cui vengono diffusi contenuti. È un'applicazione software. Col termine "web server" ci si riferisce a un server che ospita e distribuisce pagine web attraverso il protocollo HTTP.riferisce in genere a due cose: Al software di un web server oppure al computer sul quale viene eseguito il software del web server. Il LINGUAGGIO XML è un linguaggio estensibile, può essere continuamente esteso a seconda delle necessità del programmatore. È un linguaggio orientato alla descrizione di dati. Nasce dal consorzio del World Wide Web. XML deriva dal linguaggio SGML, il quale è il padre sia di HTML che di XML. HTML è un linguaggio mentre HTTP è un protocollo, dunque le due cose non hanno nulla in comune. XML è un linguaggio a marcatori (markup) ed è composto da istruzioni quali tag o marcatori. I tag definiscono la struttura e forma di un documento. Si parla sempre di coppia di marcatori che identificano un elemento o componente del documento. I marcatori sono memorizzati in ASCII. Dunque un documento XML è "leggibile" sia da un utente umano che dalla macchina. ES:Un documento rispetta le regole sintattiche allora si dice well-formed. Se rispetta le regole semantiche si dice Valido. Se è valido allora sarà anche well-formed. Un documento XML è composto da elementi. Un elemento rappresenta un componente logico e contiene frammenti di testo o sotto-elementi. Ad un elemento possono essere associate informazioni descrittive chiamate attributi. Gli elementi sono organizzati ad albero (document-tree). < (<) ; > (>) ; & (&). Un documento è diviso in prologo e corpo. Il prologo contiene una XML declaration ed è la dichiarazione di come è definito il file XML. Il commento si fa in questo modo: <!-- commento --> Tag vuoto: <tagname attribute-list/> ed equivale a <tagname attribute-list></tagname>. I metadata sono dei dati sui dati. Arricchisce di informazioni un dato. Da altri dati a dati già esistenti. DTD è un linguaggio che permette di definire le regole.
perpoter creare documenti XML validi. ES di Dichiarazione del DTD:<!DOCTYPE message SYSTEM "nomefile">
. Content model e' il modello di contenuto di ogni elemento che la DTD contiene. Inoltre DTD contiene elementi di un documento e la lista di attributi associati ad ogni elemento. Dichiarazione elementi: <!ELEMENT "nomeelemento" tipo di elemento (EMPTY, ANY, CHILDREN, MIXED)>
. Anche per gli attributi ci sono diverse dichiarazioni come: FIXED (ha un valore costante), #REQUIRED (e' necessario), ecc.
LINGUAGGIO JAVA
Nel linguaggio C: Programmazione procedurale -> divide et impera, applicazioni complesse vengono sviluppate suddividendole in componenti semplici da risolvere. La programmazione procedurale consente il riutilizzo del codice. Cio comporta la possibilita di combinare piu procedure per crearne una nuova.
Nel linguaggio Java: Programmazione ad oggetti (OOP) -> concentra l'attenzione sui dati in gioco nel problema e sucome questi interagiscono fra loro. La rappresentazione degli oggetti è detta classe. Nel definire la classe si deve decidere di quali dati (attributi) e quali funzionalità (metodi) essa è dotata. Gli oggetti della stessa classe devono possedere gli stessi dati e metodi.
Incapsulamento dei dati: non vediamo gli attributi, sono visibili solamente agli oggetti. Nel caso procedurale vengono descritte le procedure e le loro interazioni tramite dati, nel caso OOP vengono descritti gli oggetti e le loro interazioni tramite metodi.
Comportamento dell'oggetto: gli oggetti sanno eseguire operazioni in cui intervengono dati e metodi. L'insieme delle operazioni è il comportamento dell'oggetto. Un'operazione che fa parte del comportamento viene eseguita grazie all'invio di un messaggio (es: accendi televisore).
L'insieme delle informazioni necessarie all'utilizzo dell'oggetto è detto interfaccia (operazioni che può compiere, attributi che può avere).formato del messaggio richiesto per eseguirle). Per programmare ad oggettidapprima progettiamo le classi per poi passare alla realizzazione effettivadell’applicativo. Per modularità si intende la possibilità di utilizzare programmi chevengono sviluppati per risolvere i nostri ed altri problemi. Oggetto entità softwaredotata di nome, stato, comportamento, ecc. Java può utilizzare un oggetto softwarepreesistenti. Uno di questi è System.out il quale rappresenta lo schermo. Il messaggioda inviare a questo oggetto è del tipo void println(string frase) dove string è il tipo delparametro e void è il tipo di ritorno della funzione. Esempio: System.out.println(“Hello!)stampa a video il messaggio. Metodi sono gruppi di istruzioni che vengono riunite perimplementare un’unica operazione. Le variabili definite in un metodo sono locali dunquenon sono accessibili da altri metodi e sono visibili solo all’interno del
metodo stesso.Inizialmente il linguaggio era concepito per scrivere programmi per il controllo di elettrodomestici dunque doveva essere relativamente semplice, capace di essere eseguito su diversi tipi di processori (portabilità). Inoltre non doveva richiedere compilatori troppo sofisticati. Fu introdotto un linguaggio intermedio chiamato "bytecode". In java distinguiamo due fasi: compilazione (in bytecode) ed interpretazione (del bytecode). Linguaggio compilato restituisce un eseguibile (programma che può essere eseguito). Linguaggio interpretato avviene una compilazione in tempo reale, otteniamo l'interpretazione in tempo reale del codice prodotto. Il bytecode può essere visto come l'assembly di una macchina virtuale. È grazie all'esistenza della Java virtual machine che questo linguaggio è portabile. Il linguaggio java permetteva di scrivere una particolare tipologia di applicazione dette applet Java. Nel tempo
JavaScript ha sostituito