# Sistema di notifica

Un moderno sistema di notifica consiste in una combinazione software e hardware che è in grado di inviare messaggi a dei destinatari ben precisi. Per esempio, un sistema di notifica può inviare un'email quando viene aggiunto un nuovo argomento a Wikipedia. La complessità di un sistema di notifica spesso dipende dai tipi di messaggi che deve inoltrare. Inviare un'email quando viene inserito un nuovo argomento su Wikipedia può essere molto semplice, inviare notifiche quando un edificio è in fiamme dovrebbe richiedere interazioni in real-time, escalation, pianificazione, registri e fail-over.

## Caratteristiche di un sistema di notifica
### Accettazione

Un sistema di notifica è valido nella misura in cui sono validi i dati che contiene. Aggiornare i dati dei destinatari non è l'ideale, poiché i dati potrebbero essere inesatti (errori nella digitazione), falsi (dati appositamente sbagliati) o non più validi (un numero di telefono cambiato). Un sistema di notifica dovrebbe validare i dati dei destinatari per gestire i casi succitati.

### Interazioni in real-time

Nel caso di un incendio, o un'altra situazione che richiede un intervento umano, un sistema di notifica deve fornire un modo per accettare dei feedback. Il feedback può essere utile per decidere quale azione il sistema deve intraprendere. Per esempio, un capo dei pompieri, quando viene avvisato di un incendio in corso, deve essere avvisato che l'autopompa è già per strada, evitandogli così di ricevere ulteriori notifiche relative allo stesso incendio.

### Escalation

La criticità di un evento dovrebbe poter cambiare prima che l'evento sia completamente risolto. Spesso un piccolo guasto può scatenare una serie di guasti che possono portare a eventi che richiedono una attenzione immediata. Per esempio, una e-mail che non giunge a destinazione non è problema grave, potrebbe essere classificato come una segnalazione. D'altra parte, la segnalazione dovuta al mancato recapito di una e-mail può far partire un ping al server di posta responsabile dell'inoltro delle e-mail. Se il ping fallisce, l'evento può essere elevato al livello urgente, per indicare che è molto più importante la sua risoluzione.

### Pianificazione

Nel decidere i destinatari cui notificare un evento, un sistema di notifica dovrebbe prendere in considerazione gli orari in cui il destinatario può essere avvisato. Un sistema di notifica dovrebbe prendere in considerazione anche periodi di disponibilità e indisponibilità da parte di un destinatario al ricevere le notifiche, per esempio fine settimana o periodi di vacanza.

### Registri

Se un sistema di notifica non può contattare il destinatario indicato, può non essere sufficiente riprovare in seguito a notificare nuovamente l'evento. Può essere di grande utilità che il sistema di notifica abbia un registro di destinatari alternativi cui inviare la notifica di un evento nel caso un destinatario non sia raggiungibile.

### Fail-over

High availability (Alta disponibilità) significa che il sistema deve essere funzionante e attivo per il 99.999% del tempo. L'unica inattività accettabile è quella dovuta ad un aggiornamento, che deve comunque durare il meno possibile. Per raggiungere l'obiettivo dell'alta disponibilità (HA), i software per un sistema di notifica deve tenere in considerazione l'evenienza della indisponibilità dell'hardware su cui gira. L'indisponibilità dell'hardware può essere dovuta allo stacco accidentale di un cavo di rete come alla rottura di hard disk. Un sistema di notifica dovrebbe essere distribuito su macchine fisicamente separate per assicurarsi la disponibilità del servizio anche in caso di problemi all'hardware.

### Modi di comunicazione

I modi con cui una persona può interagire tramite la tecnologia sono molteplici. Un sistema di notifica avanzato si basa su uno o più dei seguenti metodi di comunicazione:
* Short message service (SMS)
* Voce (telefono, Telefono cellulare, VoIP, altoparlanti)
* E-mail (POP, IMAP, SMTP)
* Desktop alert (PC, Mac)
* Cercapersone (SNPP)
* Instant Messaging (AIM, XMPP, MSN, ICQ)
* RSS (lettore RSS, simboli digitali)
* Web page (JavaScript, XML)
* Fax

## Scenari di utilizzo

* istituzioni finanziarie (banche, broker, Credito cooperativo)
* servizi d'emergenza (polizia, vigili del fuoco, ambulanze)
* attività manifatturiera
* SCADA (produzione di energia elettrica, trattamento dell'acqua, raffinazione )
* Information technology (help desk, reti informatiche, software di monitoraggio)
* calamità naturali (tempeste, terremoti, tsunami)

## Sistemi di notifica esistenti

* DeskAlerts, su alert-software.com.
* U.C.ME-OPC, su controlsee.com.
* Netpresenter, su netpresenter.com.
* extWARN, su extsoft.com. URL consultato il 2 gennaio 2010 (archiviato dall'url originale il 6 marzo 2011).
* Intellipol, su intellipool.se. URL consultato il 2 gennaio 2010 (archiviato dall'url originale il 10 febbraio 2010).
* Alertus System, su alertus.com.
* GroundWork Monitor, su groundworkopensource.com.