…i sogni verranno da te…(R. Paush)

Progetto EMC

Obiettivi

 

Sistema di ticketing in realtime condiviso fra più tipologie di utenti con diversi privilegi e compiti.

 

Descrizione del progetto:

 

 Workflow aziendale

Un lavoratore riceve da un suo superiore una richiesta di ticket per una riparazione nel suo territorio di competenza. Svolge la mansione e riporta la riuscita su un documento spreadsheet condiviso.

Lo spreadsheet contiene la percentuale di avanzamento di lavoro ed eventuali emergenze. Ad ogni lavoratore viene affidato un lavoro in base alle skills e alla disponibilità nella sua zona di competenza. Ogni lavoratore ha la propria area di incarichi in ambiente corporate o consumer.

 Descrizione

Si dovrà produrre un sistema di ticketing per gli utenti del sistema. Verrà implementato nella fattispecie di “calendario” condiviso in realtime fra più utenti.

Gli utenti del sistema si dividono in:

  • (CSE) con permessi read;
  • (ASE, ASR, FSS, SM, RM, PM) con permessi read e write.

 

Gli operatori saranno CSE o ASE. I primi operano su clienti Consumer, i secondi su clienti Corporate.

L’accesso alla piattaforma avverà in remoto su macchine con OS generico tramite un interfaccia web.

Gli operatori riceveranno via email una notifica per l’avvenuta apertura del ticket.

Una volta finito il ticket, l’operatore farà un login nel sistema per chiudere il ticket con eventuali note.

Un operatore CSE potrebbe essere un neo-assunto, sarà quindi assegnato ad un CSE Senior per lo svolgimento del ticket.

Si potranno verificare eccezioni, in tal caso verranno registrate in un file di testo esterno al programma.

 

 Richieste di implementazione

 

Non sono state date richieste preferenziali sull’ambiente di sviluppo, linguaggi di programmazione, sistema di database, interfaccia grafica.

È stata espressa preferenza verso un’interfaccia web come frontend.

Occorrerà stilare una serie di grafici con statistiche sull’andamento dei ticket o sulla località dei professionisti al lavoro.

Sarebbe gradito un sistema di messaggistica interno basato su email o messaggi semplici, fra i vari utenti per comunicazioni istantanee.

Il login sarà eseguito tramite il servizio “Active Directory” in ambiente Microsoft Windows che prenderà le credenziali nel sistema centrale dove risiede il server.

È richiesto un tracciamento delle modifiche ai dati correnti per tener conto delle modifiche apportate dai vari utenti.

 

Proposte di implementazione

 

Implementazione sistema software

 

Prima soluzione:

 

Una prima implementazione proposta è basata su un’architettura client-server con tecnologia java EE usando il framework Spring.

La scelta del linguaggio di programmazione è ricaduta su java poichè è un linguaggio di discrete performance per applicazioni web con una larga base di utenti e per la disponibilità di librerie di terze parti.

Il software si interfaccierà con l’utente finale tramite un interfaccia web di semplice utilizzo. Saranno implementati Login, con credenziali richieste al sistema centrale tramite il sistema “Active Directory” di Microsoft.

L’interfaccia Web verrà realizzata in HTML, CSS e Javascript usando il framework Jquery.

L’interfaccia web verrà aggiornata tramite richieste HTTP asincrone usando il metodo AJAX.

Il server si collegherà tramite il framework Spring alla base dati dove riperirà tutti i valori necessari al funzionamento dell’interfaccia.

Il server web esporrebbe un API remota di tipo REST per permettere il login e la gestione del tutto tramite applicazioni esterne di terze parti (tipo applicazioni per smartphone).

Sarà implementato un modulo di logging su disco che terrà traccia di ogni modifica apportata al sistema.

 

Vantaggi e Svantaggi:

 

Vantaggi:

  • Implementazione unica su una sola piattaforma
  • Alta coesione del progetto

Svantaggi:

  • Servizio su server unico e quindi non distribuito
  • Richiesta di risorse piu’ esosa

 

 

 

 

Seconda soluzione:

 

Una seconda soluzione è un sistema distribuito client server basato su php e java.

Un server java risiederebbe su un sistema centrale che si occuperebbe del login degli utenti tramite il servizio di Microsoft “Active Directory”, il sistema di base dati, le comunicazioni con gli operatori e il servizio di sincronizzazione dei ticket.

Il servizio web risiederebbe un server dislocato nella intranet aziendale o pubblico. Questo servizio permetterebbe all’utente finale di interfacciarsi con la base dati, previa autorizzazione tramite credenziali, per gestire i ticket di intervento.

L’interfaccia Web verrà realizzata in HTML, CSS e Javascript usando il framework Jquery. L’interfaccia web verrà aggiornata tramite richieste HTTP asincrone usando il metodo AJAX.

Il servizio java e il servizio web si interfaccerebbero tramite un protocollo comune che lavorerebbe tramite XML o JSON.

Il server web esporrebbe un API remota di tipo REST per permettere il login e la gestione del tutto tramite applicazioni esterne di terze parti ( tipo applicazioni per smartphone ).

 

Vantaggi svantaggi:

 

Vantaggi:

  • Dislocamento delle risorse richieste
  • Maggiore flessibilità
  • Maggiore modularizzazione del progetto

 

Svantaggi:

  • Sviluppo supplementare di software
  • Implementazione di un linguaggio comune fra server e client

 

Implementazione sistema informativo

 

Il sistema informativo utilizzato in fase di testing sarà mysql. Il committente non ha dato informazioni sul sistema di informazione usato all’interno dell’azienda.

Si è stilato il diagramma ER della base dati.

 

 

Vincoli di integrità:

 

Massimo due utenti possono lavorare per volta su di un ticket.

Se un utente è neoassunto, deve essere affiancato sullo stesso ticket.

A ogni ticket corrisponde almeno un utente.

Un utente deve svolgere almeno un ruolo.

Un utente per lavorare su un ticket deve essere disponibile.

Un utente per lavorare dal cliente deve essere nella stessa città.

 

Use Case