Benvenuto caro Lettore!

UF è un blog di ingegneria informatica pieno di articoli più o menoo tecnici. Iscriviti per rimanere aggiornato all'uscità dei prossimi articoli.

Ad Ad ads ads

Ricerca

11 gen 2012

Tutto quello che vuoi sapere su SIP



Nell’artico riguardante il VoIP, ho introdotto SIP (Session Initiation Protocol) come un protocollo di controllo che si occupa di segnalazione durante una comunicazione VoIP.
E’ un protocollo della IETF del livello applicazione descritto nella RFC 3261 che si occupa della creazione, gestione e chiusura di una comunicazione VoIP  (o di altre sessioni multimediali o testuali).
In quest’articolo, vedremmo gli elementi principali di SIP, analizzeremmo i suoi messaggi e il suo funzionamento.

Elementi


Gli elementi principali di SIP sono:

SIP User Agent:  sono gli attori della comunicazione. Possono essere usati sia in modalità server (rispondere alle richieste) sia client (inviare delle richieste).
Registrar Server: E’ un server che riceve da parte degli user agent iscritti a un dominio il loro attuale indirizzo IP che servirà poi per localizzarli. Inoltre usa i servizi di un server AAA per l’autenticazione.
Proxy Server: è un server intermedio serve a spedire i messaggi a domini esterni.
Può essere Outbound (Riceve tutte le chiamate uscenti di un User Agent vicino) o Inbound (Instrada le chiamate entranti in un dominio destinato a un User Agent vicino.)
Redirect Server: Usato per re instradare le richieste SIP verso destinazioni alternative (per esempio in assenza del destinatario).
Location Server:  è un database contenente informazioni sull'utente, come il profilo, l'indirizzo IP, l'URL.

In generale tutti questi server sono riuniti in un unico server chiamato SIP server.
Fin cui possiamo intuire che gli user agent comunicano fra loro mandandosi dei messaggi e usano dei server per la localizzazione e l’instradamento di questi messaggi.  Come sono fatti questi messaggi? 

Messaggi

I messaggi di SIP sono testuali e simili a quelli usati da HTTP per lo scambio di pagine web.
Ecco il formato dei messaggi SIP:


L’intestazione contiene informazioni sull’user agent sorgente e l’user agent destinatario del messaggio.
La linea vuota indica la fine dell’intestazione.
Il payload usa il protocollo SDP (Session description protocol) e descrive i parametri della sessione nel caso fosse multimediale (opzionale nel messaggio).
Ora vediamo i tipi di messaggi.

Tipi di messaggi SIP

INVITE: invitare un utente a partecipare a una comunicazione.
ACK: Notificare la ricezione di una risposta.
BYE: Terminare una comunicazione.
CANCEL: Anulare una richiesta (INVITE) prima ancora di averne ricevuta la risposta.
OPTIONS: Chiedere informazioni sulle capacità di un user agent.
REGISTER: Registrare l’attuale indirizzo di un user agent
      SUBSCRIBE: Richiedere lo stato di un user agent.
      NOTIFY: informare dello stato di un UA
      MESSAGE: mandare un messaggio (testo/XML) usato per l'istant messaging.

Ora vediamo i tipi di risposte.

Tipi di risposte 

Le risposte sono classificate con un codice di tre cifre, dove la prima indica la categoria. Le categorie principali sono:

1xx Risposte provvisorie:

100 Ricerca del destinatario in corso.
180 Il Telefono SIP del destinatario sta suonando.
182 Richiesta in coda.

2xx Risposte positive:

200 OK.

3xx Re direzione:

300 Scelta multipla
305 Uso del Proxy

4xx Errori nel client:

404 destinatario non trovato.
407 errore di autenticazione nel Proxy.

5xx Errori nel server:

503 Servizio non disponibile
505 Versione di SIP non supportata

6xx Errori generici:

  600 destinatario occupato su tutti gli indirizzi.
  603 chiamata rifiutata.

Ora che sappiamo un po’ di più sui messaggi scambiati, come funziona il SIP.

Funzionamento

La comunicazione in SIP è un insieme di dialoghi e transazioni. Per transazione intendiamo l’insieme dei messaggi scambiati fra la prima richiesta e la risposta finale  mentre il dialogo è un flusso di messaggi richiesta-risposta fra  due user agent.
Per l’inizio di una comunicazione SIP usa una transazione trapezoidale simile a un handshake a tre vie.

 

SIP usa i sia TCP sia UDP per il trasporto dei messaggi. In modalità TCP, si può anche aggiunge la cifratura usando TLS.
SIP deve poter localizzare un user agent associando il suo nome utente al suo indirizzo.
Come si svolge il Name Mapping?
Per associare un nome utente a un indirizzo come fa SIP? Prendiamo un esempio pratico.
Un nome utente è della forma  utente@dominio.ext
Dove dominio può essere il nome del server, l’indirizzo IP …
Per risolvere il problema SIP fa l’uso di tre servizi del server DNS (NAPTR, SRV, A/AAAA.)
NAPTR
È un record del server DNS che definisce quale protocollo di trasporto, deve essere usato per un certo servizio. Per il nostro caso il servizio è SIP e i protocolli di trasporto possibili sono:
TLS/TCP, TCP, UDP
Esempio
foo.com 43200 IN NAPTR 60 50 "s" "SIP+D2U" "" _sip._udp.foo.com

SRV
È un record del server DNS che definisce i parametri con quali accedere a un servizio. I parametri sono il server e la priorità.
Esempio
_sip._udp.foo.com 43200 IN SRV 10 10 5060 sipserver.foo.com.

A/AAAA
Questo è il record che si guarda per ultimo. Il record in questione ci da l’indirizzo per accedere ad un server.
Esempio
ns.foo.com. 43200 IN A 10.0.0.20

Per fare il name mapping SIP consulta questi tre record se sono presenti in quest’ordine NAPTR, SRV, A/AAAA.

Possiamo finire l’artico dicendo che SIP è protocollo di segnalazione semplice e leggero e fra l’altro è usato nel software Google Talk.
Segnaliamo anche che SIP usa lo standard Enum E.164 per permettere a telefoni tradizionali (PSTN) o IP di comunicare con un utente SIP ma questa è un’altra storia.
Se hai qualche dubbio aspetto le tue domande o chiarimenti.

Riferimenti e approfondimenti:
http://it.wikipedia.org/wiki/Session_Initiation_Protocol
http://www.voip-info.org/wiki/view/SIP
http://voip.html.it/articolo06.aspx
http://www.siptutorial.net/SIP/index.html
http://www.alma-web.net/index.php/faq/23-linux/27-il-protocollo-sip.html


8 gen 2012

Tutto quello che devi sapere sui Data warehouse.


 Possiamo definire un data warehouse come una base di dati di grande dimensione separata da quella operativa dell’azienda e usata per il supporto alle decisioni.
A cosa serve un secondo database di grande dimensione a una azienda? La risposta a questa domanda è importantissima.
Ogni azienda tiene delle informazioni sulle sue attività per offrire i suoi servizi in modo efficace.  Per usufruire al meglio di questa informazione, le aziende si creano un secondo database (il data warehouse) che poi usano per analisi, archivio, sicurezza e anche supporto alle decisioni.
Le informazioni tratti da un data warehouse sono poi usati dai manager delle aziende per fare per esempio delle valutazioni tecnico-economiche sull’andamento dell’azienda.
Al crescere del database transazionale, il data warehouse di un azienda è aggiornato.
In quest’articolo, analizzeremo gli elementi di un data warehouse, la sua architettura e in fine vedremmo qualche sua applicazione.

Elementi di un data warehouse






Dalla creazione all’uso di un data warehouse, i dati seguono un flusso ben determinato. Dati provenendo da fonti diverse sono estratti e trasformati secondo regole ben stabiliti e salvati nel data warehouse usando server dedicati.  Dopo di che ci sono applicazioni ad hoc che estraggono i dati dalla data warehouse usando dei query o altri metodi per analizzare i dati.
Gli elementi sono quindi in modo generale le fonti di dati, i data warehouse (con o senza data mart), i servers strumenti di analisi e i metadati.

Fonti

Le fonti possono essere di diversi tipi dal file testo fino a un database vero e proprio. Possono essere interni (il database OLTP dell’azienda) o esterni (dati provenienti da un'altra azienda.)
Per integrare questi dati, si usa il processo ETL (Extracting, Transformation, Loading) che deve estrarre i dati dalle fonti, ripulirli da errori o inconsistenze e finalmente trasformarli in un formato adatto per il data warehouse.

Data warehouse e data mart

Un data mart può essere pensato come la restrizione della data warehouse a un solo dipartimento (Vendite ad esempio) dell’azienda.
A questo punto si può dire che un data warehouse è un insieme di data mart. Ci sono aziende che costruiscono il proprio data warehouse in modo graduale aggiungendo un data mart alla volta. Gli altri invece partono da tutti i data mart (prende più tempo).

Strumenti di analisi


Gli strumenti di analisi sono degli strumenti destinati agli utenti che potranno per analizzare i dati.
Ce ne sono ad esempio quelli per fare delle relazioni su vari argomenti, quelli per eseguire delle query e avere i dati che servono a loro rappresentati in vari modi. Le applicazioni per le query sono fatti ad hoc nel senso che non si può sapere a priori quali informazioni servono agli utenti.

Servers
Due tipi di servers sono usati rispetto alla densità dei dati.
Server Relational OLAP
Si usano i server dei DBMS tradizionali estesi per operazioni aggregati.

Server Multidimensional OLAP
Sono server rappresentati da matrici multidimensionali dove ogni dimensione è un elemento
del data warehouse.



I meta dati

I metadati sono dei dati che documentano ogni parte del processo.
Ci sono dei metadati per La fase ETL, ci sono dei metadati per il dati contenuti nel data warehouse e infine dei metadati per le query fate.

Architettura

Ci sono tre architetture di cui la prima è sconsigliata.
La prima è quella a un solo livello. Si usa lo stesso database per operazioni transazionali e quelli analitiche. Le operazioni analitiche appesantiranno la velocità delle operazioni transazionali che a loro volta sovrascriveranno dati importanti per l’analisi storica dell’azienda.
La seconda architettura è quella a due livelli in cui il database OLTP e il data warehouse sono separati.
Il primo strato è costituito dalle fonti di dati. Il problema maggiore con quest’architettura è che il processo di ETL non è fattibile in pratica con la dimensione di dati da dover estrarre.
Il che ci porta alla terza architettura che aggiunge fra il primo strato e l’ultimo, un nuovo strato che permette di alleggerire le operazioni ETL faccendoni per la più grande su macchine predisposte a questo scopo nel secondo strato.

Applicazioni

Le applicazioni della data warehousing sono varie, in seguito solo una piccola lista:
Negozi: Comportamento del cliente
Assicurazione: Antifrode
Telecomunicazione: Analisi chiamate, antifrode
Salute: Analisi del servizio e salute
Aspettavo l’ultimo per la fine, La pubblicità mirata in tante azienda usa le informazioni sui clienti per capire meglio i loro gusti.

Glossario:

OLTP: On-Line Transaction Processing usato nei processi transazionali in un DBMS
OLAP: On-Line Analytical Processing usato nei processi di analisi in un data warehouse

Fonti e approfondimenti:


Slide del Prof Luca Cabbibo
Slide del Prof  Elena Baralis (Polito)
Wikipedia
http://www.wisegeek.com/
http://www.eccellere.com/
http://www.dwinfocenter.org/getstart.html
http://www.tech-faq.com/
Image: renjith krishnan / FreeDigitalPhotos.net


Siamo su Facebook

Google+