# AOL Instant Messenger

AOL Instant Messenger (AIM) è stato un programma di messaggistica istantanea prodotto da AOL che sfruttava i protocolli di messaggistica OSCAR e TOC per consentire agli utenti di comunicare in tempo reale.
È stato reso disponibile per la prima volta da AOL nel mese di maggio del 1997. Il client ufficiale sviluppato da AOL è disponibile per Microsoft Windows, macOS, BlackBerry OS, iOS, Android e Windows Mobile. AIM, mantenuto e sviluppato da AOL, ha una larga quota del mercato dei programmi di messaggistica istantanea, specialmente negli Stati Uniti (52% del totale nell'anno 2006).
A partire dall'anno 2000, gli utenti di AIM e di ICQ possono aggiungersi vicendevolmente, dal momento che i due sistemi di messaggistica impiegano il medesimo protocollo di comunicazione, cioè OSCAR ("Open System for CommunicAtion in Realtime").
Il programma ha cessato di funzionare il 15 dicembre 2017.

## Storia

Lo sviluppo di AIM cominciò nel 1994; una primissima versione funzionale del programma venne inaugurata nel 1995 per i soli dipendenti di AOL; l'apertura del programma al largo pubblico si ebbe solo nel mese di maggio del 1997.
Sin dalla versione 2.0 AIM ha incluso, oltre alla normale messaggistica utente-utente, la possibilità di avere vere e proprie chatroom e la funzionalità di condivisione file con i propri contatti tramite tecniche di tipo Peer-to-peer. La versione 4.3 ha introdotto la memorizzazione della lista dei contatti sui server di AOL ed ha consentito di avere fino ad un massimo di 200 utenti nella propria lista contatti. Inoltre a partire dalle versioni 4.x il client AIM per Microsoft Windows ha reso disponibile la possibilità di effettuare giochi contro altri utenti tramite il motore Wild Tangent. La prima versione pubblicata con Wild Tangent non informava riguardo all'installazione di tale motore; le versioni attuali lo fanno, giacché molti software identificano tale motore come spyware.
La versione 5.5 ha consentito agli utenti Windows di effettuare videoconferenze tra loro e con gli utenti AIM che utilizzano iChat di Apple; iChat è stato il primo client AIM prodotto da terze parti ad essere ufficialmente riconosciuto da AOL.
La versione di AIM successiva alla 5.9 era stata originariamente chiamata AIM Triton. Rispetto alla versione 5.9, il codice di Triton venne riscritto per intero ed includeva una nuova versione del motore d'interfaccia utente, denominato Boxely. La prima versione beta di Triton (0.1.12) era disponibile unicamente per Windows XP; per la prima volta nello sviluppo di AIM, le versioni beta sono state rese disponibili sulla home page di AIM per essere testate dagli utenti e ricevere suggerimenti su come migliorarle.
Il 29 settembre 2006 Triton venne ridenominato AIM 6.0 e venne resa disponibile una nuova versione beta; la versione finale del programma fu infine pubblicata il 15 dicembre. Tra le nuove caratteristiche, la presenza delle AIM Pages, possibilità avanzate di personalizzazione e compatibilità con programmi e siti web con funzionalità d'agenda grazie allo "Universal Address Book" prodotto da Plaxo. Inoltre, tale versione ha unificato i messaggi di assenza e gli aggiornamenti del profilo d'utente in feed RSS ed ha introdotto la possibilità di inviare messaggi agli utenti non in linea; vennero anche reintrodotte altre funzionalità, precedentemente eliminate da AOL.
Con tale versione ebbe pure inizio l'apertura di AIM verso gli sviluppatori, consentendo così la creazione di plugin o client AIM personalizzati per i sistemi operativi Windows, Macintosh e Linux.
La versione 6.1 ha introdotto il blocco sullo schermo della lista dei contatti, il supporto all'inserimento di immagini nel profilo d'utente e la possibilità di cambiare i colori della interfaccia; altri miglioramenti riguardano la gestione di eventuali screen name associati tra loro, risoluzione di alcuni bug e un supporto migliore per Windows Vista.
La versione 6.5.11.1 ha introdotto il supporto ai messaggi di stato (simili ai messaggi d'assenza) ed ha migliorato sensibilmente l'integrazione con i telefoni cellulari.
Il 6 ottobre 2017 viene annunciato che il servizio sarà letteralmente spento il successivo 15 dicembre, dopo oltre 20 anni di funzionamento.

## Protocollo

Il protocollo standard che i client AIM usano per comunicare tra loro è chiamato OSCAR. La maggior parte delle versioni di AIM prodotte da AOL e molti popolari client di terze parti usano tale protocollo. Tuttavia, AOL ha creato anche un protocollo più semplice, denominato TOC, il quale pur risultando carente in molte delle funzionalità tipiche di OSCAR viene comunque a volte utilizzato da quei client che richiedono unicamente funzionalità basilari di chat. Le specifiche dei protocolli TOC e TOC2 sono state pubblicate da AOL, mentre OSCAR è un protocollo chiuso che i client di terze parti possono impiegare solo tramite operazioni di reverse-engineering.
Nel mese di gennaio 2008, AOL ha introdotto un primo supporto XMPP per AIM, consentendo agli utenti di AIM di comunicare tramite il protocollo standardizzato ed open-source XMPP. Tuttavia, il servizio pare non essere più attivo dal mese di marzo 2008.

## Terminologia

AIM e AOL chiamano gli elementi della propria rete di instant messaging in maniera a volte diversa rispetto a quelli delle altre reti di messaggistica istantanea. Tali differenze includono:
* Messaggio di assenza: è una funzionalità di alcuni programmi di messaggistica con la quale un utente può creare un messaggio che verrà inviato automaticamente agli utenti che provassero a contattarlo qualora egli abbia scelto di rendersi non disponibile; è sostanzialmente una funzione analoga al messaggio comunemente registrato nelle segreterie telefoniche. I messaggi di assenza vengono memorizzati in locale, e pertanto in presenza di più computer su cui sia stato effettuato contemporaneamente il login ad AIM da parte dello stesso utente non possono essere sincronizzati automaticamente da una macchina all'altra. Gli utenti più smaliziati possono consultare una guida ufficiale di AOL (http://www.aim.com/help_faq/using/win/away.adp?aolp=#backup) per esportare tali messaggi dal registro di sistema per le versioni di AIM eseguite su sistemi operativi Microsoft Windows.
* Blocco: un utente AIM può bloccare un determinato screen name sulla propria lista dei contatti. Gli utenti bloccati non possono contattare o vedere lo stato dell'utente che li ha bloccati. Utente bloccato ed utente bloccante vedranno sempre l'un l'altro come non in linea, fino al momento in cui l'utente bloccante non decida di sbloccare l'utente bloccato.
* Buddy Info: sono informazioni d'utente che possono essere editate; i contatti dell'utente possono vedere queste informazioni tramite un apposito pop-up; vi è un limite nel numero di caratteri che non può essere superato.
* Buddy List: è il vero e proprio cuore di AIM: è di fatto la lista dei propri contatti, che può memorizzare fino ad un massimo di 1000 utenti. La lista viene conservata dai server di AIM in modo che sia accessibile da un qualsiasi client AIM. Gli utenti possono vedersi l'un l'altro come 'online', 'assente', 'inattivo', 'terminale mobile', o 'non in linea'.
* Connessione diretta: con questa funzionalità gli utenti di AIM possono, invece che inviare i propri messaggi tramite il server di AIM, connettersi direttamente l'uno con l'altro, ed inviarsi materiale di vario formato.
* Screen name: termine del tutto equivalente alla classica espressione "nome utente". Gli screen name possono essere registrati, a titolo del tutto gratuito, sul sito web di AIM.
* Rate limiting: è un limite atto a prevenire l'invio di un numero eccessivo di messaggi in un breve intervallo di tempo da parte di un utente. Quando un utente viene limitato, non può più inviare messaggi per 20-30 secondi, ma può in ogni caso ricevere messaggi.
* Warning: qualora un utente avesse ritenuto che un messaggio ricevuto fosse poco appropriato, avrebbe potuto inviare una notifica che andava ad aumentare il livello di attenzione caratteristico di ogni singolo utente; tale livello riduceva il numero massimo di messaggi che un utente poteva inviare in un determinato arco di tempo ed anche impedire ad un certo screen name di effettuare l'accesso ad AIM per un predeterminato arco temporale. Poiché molti utenti facevano un uso improprio di tale funzionalità, questa caratteristica non è più disponibile in AIM Triton ed in AIM 6, anche se tali notifiche non sono state disabilitate lato server, e possono ancora essere utilizzate dai client di terze parti.
* Privacy: i client AOL Instant Messenger possono venire impostati con livelli multipli di privacy per scegliere accuratamente con quali utenti comunicare e per evitare fenomeno di molestia o di spam da parte di altri utenti.
* Icona: è una piccola immagine personalizzata che gli utenti possono impostare in modo che appaia a chiunque stia chattando con loro. Viene anche chiamata avatar.

## Privacy

AIM è differente da altri client quali Windows Live Messenger e Yahoo Messenger, giacché in maniera predefinita non richiede l'approvazione da parte dell'utente per essere incluso nella lista dei contatti di un altro utente. È dunque possibile avere nella propria lista contatti di altre persone e vedere quando sono online, leggere i loro messaggi di stato e di assenza ed i loro profili senza autorizzazione diretta. Ovviamente, è possibile bloccare gli utenti e scegliere di consentire la comunicazione esclusivamente con i contatti della propria lista.

## Bot

AOL e varie altre compagnie forniscono robot per AIM in grado di ricevere ed inviare messaggi in base alle loro funzionalità. A titolo d'esempio, alcuni bot possono aiutare nello studio, come StudyBuddy; altri sono progettati come supporto per bambini ed adolescenti, come Spleak, altri ancora forniscono consigli o altro, come nel caso di SmarterChild. Prima dell'inclusione di tali bot, DoorManBot e AIMOffline fornivano funzionalità che sono oggi fornite direttamente da AOL.

## Schema degli URI

L'installazione di AOL Instant Messenger aggiunge un ulteriore gestore protocollare degli Uniform Resource Identifier in alcuni browser, in modo che gli URI che cominciano con "aim:" possano aprire una nuova finestra di AIM con i parametri specificati; tale funzionalità è del tutto simile allo schema URI mailto:, che serve a creare un nuovo messaggio e-mail con il programma di posta elettronica predefinito sul computer. Per esempio, una pagina potrebbe includere nel proprio codice HTML un link come quello sotto riportato, che consente di aprire una finestra per inviare un messaggio all'utente AIM "utentefittizio":
Per specificare un messaggio, si deve impiegare il parametromessage, come in questo esempio:
Per specificare un messaggio di assenza, occorre agire nella seguente maniera:
Inserendo tale codice in un link URL, quando un utente AIM clicca su tale URL imposta il proprio messaggio di assenza come "Ciao, mi chiamo Bill".

### Vulnerabilità

AIM è noto per alcune debolezze nella gestione della sicurezza che hanno consentito exploit generati da software di terze parti. Nonostante questi fossero in larga parte totalmente innocui (le azioni compiute consistono, ad esempio, nel forzare il logout dal servizio AIM), altri eseguono azioni potenzialmente pericolose quali la raccolta dell'indirizzo IP e l'invio di virus informatici. Molti di tali exploit si basano in realtà su tecniche di ingegneria sociale che consistono nell'inviare automaticamente messaggi contenenti una URL ed un testo che suggerisce all'utente di visitare tale sito: tali messaggi possono essere per distrazione confusi con quelli inviati dai propri amici, mentre il link da visitare punta in realtà ad un sito web che, su computer scarsamente sicuri, potrebbe installare software all'insaputa dell'utente, consentendo in tal modo di ripetere il ciclo.

### Software integrato

Viewpoint Media Player, un plugin atto a rappresentare materiale grafico proprietario, viene installato dal client AIM ed invia informazioni sull'utenza al proprio sviluppatore,

## Varie
### Applicazione per iPhone

Il 6 marzo 2008, durante l'evento SDK di Apple, AOL ha annunciato la futura distribuzione di una applicazione AIM per gli utenti di iPhone e iPod touch, la quale sarà disponibile presso l'App Store a titolo gratuito.

### AIM Express

AIM Express è un client AIM che funziona all'interno di una finestra pop-up del browser. Il suo target d'utilizzo è dato da quegli utenti che non vogliono o non sono in grado di installare un client completo AIM sul proprio computer. AIM Express supporta molte delle funzioni del client stand-alone, ma non fornisce le funzionalità più avanzate quali il trasferimento file, la chiamata audio, la video conferenza o la Buddy info. È implementato tramite DHTML. AIM Express rappresenta una versione migliorata del vecchio AIM Quick Buddy (ancora disponibile per i sistemi più obsoleti che non sono in grado di gestire AIM Express); Express e Quick Buddy sono del tutto simili a MSN Web Messenger e Yahoo! Web Messenger.

### AIM Pages

AIM Pages è stato introdotto nel mese di maggio del 2006, consentendo così ai 63 milioni di utenti di AIM di creare un profilo dinamico online. La lista dei contatti serve come base per il social network di AIM pages. La AIM page viene generata tramite l'impiego di moduli in microformato ModuleT.