ANAGRAM

An Agenda system for RAMs

Introduzione

La Meeting.com.org.net s.r.m.l. fornisce alle aziende servizi per la pianificazione, organizzazione, gestione e hosting di riunioni.
La società intende ampliare la sua offerta offrendo alle aziende clienti un servizio di agende distribuite per l'organizzazione di meeting basato su tecnologia wireless.

In particolare, si vuole realizzare un sistema, basato su Rete Aziendale Mobile (RAM), che consenta ai partecipanti di convocare riunioni fornendo i nominativi dei partecipanti di cui è richiesta la presenza. Il sistema, che mantiene le agende delle riunioni di tutto il personale dell'azienda, individua il momento migliore per tenere la riunione, registra la riunione sulle agende delle persone coinvolte, e invia una notifica sui terminali wireless dei partecipanti (e di chi ha convocato la riunione).
Inoltre, il sistema deve fornire un servizio di allarmistica, ricordando ai partecipanti i dettagli della riunione all'approssimarsi della data e ora fissati.
In tutte le transazioni wireless, il sistema deve tenere conto dei vincoli imposti dal protocollo di comunicazione e dalla disponibilità di banda, determinati in sede contrattuale dal gestore della RAM.

Specifiche di dettaglio

  1. Identificazione dell'utenza

  2. Gli utenti sono identificati in base al numero telefonico del loro terminale wireless (telefono cellulare) e autenticati tramite un PIN numerico di cinque cifre, che viene inserito dall'utente nei messaggi di richiesta al servizio. Di ogni utente è noto anche il nome anagrafico, che viene usato per la visualizzazione. Non sono inizialmente previsti livelli di autorizzazione diversi per diverse classi di utenza.
     
  3. Formato dei messaggi

  4. Tutti i messaggi in entrata e in uscita dal sistema devono essere messaggi di testo (SMS) di lunghezza massima pari a 160 caratteri.
     
  5. Messaggi di convocazione

  6. Il messaggio con cui un utente chiede al sistema di convocare un meeting include le seguenti informazioni:
    1. ragione del meeting
    2. luogo del meeting
    3. partecipanti necessari
    4. partecipanti opzionali
    5. data e ora preferita
    6. durata prevista
    7. limite di anticipo
    8. limite di posticipo
    I campi b, d, f, g e h sono opzionali (b è per default la sede dell'azienda; f è tutta la mattina o il pomeriggio, dall'ora della riunione alla pausa pranzo o alla chiusura serale; g e h sono per default 2 giorni dalla data preferita). I nomi dei partecipanti in c e d possono essere dati con abbreviazioni uniche (per esempio, i soli cognomi). I limiti di anticipo e posticipo possono essere espressi come data e ora o come numero di giorni rispetto alla data e ora preferita.
     
  7. Politica di selezione

  8. Ricevuta una richiesta di convocazione di una riunione, il sistema seleziona una data e ora per la riunione in modo che
    1. tutti i partecipanti necessari siano liberi
    2. il maggior numero possibile di partecipanti opzionali siano liberi
    3. la data non sia precedente al limite di anticipo
    4. la data non sia successiva al limite di posticipo
    5. la data sia vicina per quanto possibile alla data e ora preferita
    6. l'intera riunione sia compresa negli intervalli predefiniti (dall'apertura alla pausa pranzo, o dal termine della pausa pranzo alla chiusura serale)
    Se non esiste una selezione che soddisfi i vincoli dati sopra, il sistema deve segnalare l'impossibilità di convocare la riunione all'autore della richiesta.
     
  9. Gestione agende

  10. Una volta fissato un meeting, il sistema deve registrare l'impegno dei partecipanti nelle rispettive agende, e inviare un messaggio di avviso ai partecipanti (e al convocante) recante i dettagli della riunione. Ogni utente del sistema deve avere la possibilità di consultare la propria agenda, come mantenuta dal sistema, tramite una pagina web protetta da autenticazione (il server web rende accessibili le pagine anche tramite protocollo WAP).
     
  11. Cancellazione riunioni

  12. Chi ha convocato una riunione può cancellarla (al più tardi, due ore prima dell'ora fissata per la riunione) inviando al server un messaggio di cancellazione. La riunione da cancellare è indicata tramite il campo "ragione" (vedi 2.a). In questo caso, il sistema aggiorna di conseguenza le agende di tutti i partecipanti di cui era prevista la presenza, e avvisa i partecipanti della cancellazione.
     
  13. Allarmistica

  14. Il sistema ricorda agli utenti l'approssimarsi di una riunione a cui è prevista la loro partecipazione tramite l'invio di un messaggio. Tale messaggio deve essere ricevuto almeno un'ora prima dell'inizio della riunione, e non più di quattro ore prima. Il sistema evita comunque di inviare messaggi fra l'ora di chiusura serale e un'ora prima dell'ora di apertura del giorno successivo.
     
  15. Disponibilità rete

  16. La RAM non garantisce la disponibilità di banda, nè la consegna affidabile di messaggi tramite la rete wireless. Ogni volta che viene trasmesso un messaggio, la rete segnala se la consegna è avvenuta con successo o se si è verificato un fallimento; in questo caso, il sistema deve ritentare l'invio dopo un tempo di attesa.
    La banda disponibile è solitamente sufficiente per l'invio dei messaggi, ma occasionalmente il gestore della RAM può riservarne una parte per altri usi (per esempio, per lo svolgimento di videoconferenze sulla RAM tramite apparati wireless). In ogni caso, il sistema riceve dal gestore della rete un messaggio che specifica la riduzione di banda, con un preavviso non inferiore alle quattro ore. Il sistema deve in ogni caso garantire il servizio di allarmistica, dando priorità alle riunioni più urgenti, e quello di notifica della convocazione delle riunioni. Se la banda residua non è sufficiente alla normale operatività del sistema, è accettabile che esso rifiuti i messaggi di convocazione di nuove riunioni, indicando però il rifiuto all'utente che convoca la riunione, e informandolo su quando si stima che sarà disponibile banda sufficiente affinché si possa ritentare la convocazione.
     
  17. Architettura del sistema

  18. Il sistema dispone un ricevitore/trasmettitore per messaggi di testo (driver SMS). Sia i messaggi in uscita che quelli in entrata recano il numero telefonico del destinatario/mittente e un campo di testo contenente il messaggio. I messaggi in entrata recano anche l'istante di trasmissione del messaggio da parte del terminale wireless dell'utente. I preavvisi di allocazione della banda giungono al sistema tramite una connessione separata, via cavo, con i sistemi del gestore della RAM (sistema gestore). Il sistema è inoltre connesso a una macchina che funge da Web server (web server), a cui possono essere inviati i file in formato HTML rappresentanti le agende degli utenti.