UNIVERSITÀ DEGLI STUDI DI TRIESTE
               FACOLTÀ DI INGEGNERIA
       Corso di laurea triennale in ingegneria info...
Contesto:
Onlife è una assicurazione vita venduta su internet,
 proposta da L.A. Vita S.p.A., società controllata al
 100%...
Alcuni esempi di automatismi:
 •   Operazioni periodiche sui dati


 •   Generazione di documenti PDF (estratti conto,
   ...
Obiettivi:
   Riprodurre tutte le funzionalità del
    vecchio software di automazione

   Rispettare gli standard azien...
Rispettare i vincoli imposti dagli standard aziendali.




                   Strumenti utilizzati:
 C#, .NET Framework 3...
Obiettivi:
   Riprodurre tutte le funzionalità del
    vecchio software di automazione

   Rispettare gli standard azien...
Problema: garantire alta disponibilità.

    Stato del        Istante in cui il servizio      Istante in cui il servizio
 ...
Alta disponibilità: fattori chiave

   Comportarsi ragionevolmente in caso di
    situazioni impreviste (+ MTBF, - MTTR)
...
Garantire alta disponibilità: soluzione
                 Applicare una metodologia
                  di gestione degli err...
Soluzione: lista concatenata di eccezioni.
Eccezione 6                              Eccezione 4                           ...
Obiettivi:
   Riprodurre tutte le funzionalità del
    vecchio software di automazione

   Rispettare gli standard azien...
Problema: avere margine di crescita.
   Dato di fatto: negli automatismi la
      maggior parte del tempo è
       dedicat...
Migliorare l’efficienza: soluzione.
   Ridurre il numero di interrogazioni
    ripensando il codice

   Accorpare più in...
Esempio: “Ridurre il numero di interrogazioni
            ripensando il codice”.

                         PRIMA:
        ...
Esempio: “Utilizzare stored
                  procedure e stored functions”.
                 L’eliminazione dei dati sens...
Obiettivi:
   Riprodurre tutte le funzionalità del
    vecchio software di automazione

   Rispettare gli standard azien...
Alcuni aspetti interessanti
      dell’implementazione degli automatismi:
   Successivamente alla definizione delle metod...
Il software sviluppato ha soddisfatto i requisiti
imposti dall’azienda, e l’entrata in produzione delle
        prime funz...
Upcoming SlideShare
Loading in...5
×

Migrazione dei meccanismi di workflow di un sistema informativo assicurativo verso l'ambiente SQL Server e .NET

629
-1

Published on

Presentazione per la prelaurea.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
629
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Migrazione dei meccanismi di workflow di un sistema informativo assicurativo verso l'ambiente SQL Server e .NET

  1. 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE FACOLTÀ DI INGEGNERIA Corso di laurea triennale in ingegneria informatica Migrazione dei meccanismi di workflow di un sistema informativo assicurativo verso l’ambiente SQL Server e .NET Relatore: Laureando: Prof. Leonardo Felician Donato Clun
  2. 2. Contesto: Onlife è una assicurazione vita venduta su internet, proposta da L.A. Vita S.p.A., società controllata al 100% da Allianz S.p.A. Finalità: Migrare e migliorare la componente software del sistema informativo che esegue ed automatizza parte del workflow aziendale.
  3. 3. Alcuni esempi di automatismi: • Operazioni periodiche sui dati • Generazione di documenti PDF (estratti conto, ordini di pagamento, ... ) • Automazione delle campagne di marketing (generazione e invio di email personalizzate)
  4. 4. Obiettivi:  Riprodurre tutte le funzionalità del vecchio software di automazione  Rispettare gli standard aziendali  Garantire un elevato livello di servizio (alta disponibilità)  Avere margine di crescita futura
  5. 5. Rispettare i vincoli imposti dagli standard aziendali. Strumenti utilizzati:  C#, .NET Framework 3.5,Visual Studio 2008  SQL Server 2005  Librerire dell’architettura Allianz  NO Microsoft Office  NO Stampanti virtuali
  6. 6. Obiettivi:  Riprodurre tutte le funzionalità del vecchio software di automazione  Rispettare gli standard aziendali  Garantire un alto livello di servizio (alta disponibilità)  Avere margine di crescita futura
  7. 7. Problema: garantire alta disponibilità. Stato del Istante in cui il servizio Istante in cui il servizio servizio viene ripristinato cessa di funzionare Funzionamento Tempo di Tempo tra due riparazione malfunzionamenti Riparazione Tempo MTBF Disponibilità media = MTBF + MTTR
  8. 8. Alta disponibilità: fattori chiave  Comportarsi ragionevolmente in caso di situazioni impreviste (+ MTBF, - MTTR)  Minimizzare i casi che possono bloccare il servizio (+ MTBF)  Agevolare il lavoro di debug e riparazione (- MTTR)
  9. 9. Garantire alta disponibilità: soluzione Applicare una metodologia di gestione degli errori:  Controllare sempre che i dati in input rispettino le specifiche.  Qualunque situazione di errore va segnalata tramite un’eccezione.  La decisione sul come comportarsi in seguito ad un errore, e il dovere di salvare le informazioni sul log, spetta sempre alla funzione che gestisce l’eccezione. Utilizzare un thread supervisore:  Verificare che l’esecuzione di un automatismo non prosegua troppo. Documentare ampiamente gli errori:  Ogni funzione che riceve un’eccezione e non è in grado di gestirla, deve lanciare una nuova eccezione (contenente i dettagli sul contesto che conosce) a cui è concatenata l’eccezione ricevuta.
  10. 10. Soluzione: lista concatenata di eccezioni. Eccezione 6 Eccezione 4 Eccezione 2 Messaggio: “. . . . . . . . .” Messaggio: “. . . . . . . . .” Messaggio: “. . . . . . . . .” InnerException InnerException InnerException Eccezione 5 Eccezione 3 Eccezione 1 Messaggio: “. . . . . . . . .” Messaggio: “. . . . . . . . .” Messaggio: “. . . . . . . . .” InnerException InnerException InnerException = NULL Ogni eccezione della catena contiene un messaggio che spiega il contesto in cui è avvenuto l’errore, dal punto di vista della funzione che l’ha creata.
  11. 11. Obiettivi:  Riprodurre tutte le funzionalità del vecchio software di automazione  Rispettare gli standard aziendali  Garantire un alto livello di servizio (alta disponibilità)  Avere margine di crescita futura
  12. 12. Problema: avere margine di crescita. Dato di fatto: negli automatismi la maggior parte del tempo è dedicata all’accesso ai dati. Migliorare l’efficienza ha significato migliorare l’accesso ai dati.
  13. 13. Migliorare l’efficienza: soluzione.  Ridurre il numero di interrogazioni ripensando il codice  Accorpare più interrogazioni in una sola  Utilizzare stored procedure e stored functions per spostare parte della logica nel database
  14. 14. Esempio: “Ridurre il numero di interrogazioni ripensando il codice”. PRIMA: SELECT [...] WHERE CAST(NUMERO_QUOTAZIONE AS INT) = [numero quotazione] (ripetuta N volte) DOPO: SELECT [...] WHERE CAST(NUMERO_QUOTAZIONE AS INT) IN (SELECT DISTINCT IDQuotazione FROM logQuotazioni) (eseguita una volta)
  15. 15. Esempio: “Utilizzare stored procedure e stored functions”. L’eliminazione dei dati sensibili è completamente a carico dalla stored procedure EliminaDatiSensibili: DECLARE @dataElim datetime SET @dataElim = GETDATE() DECLARE @eliminati int UPDATE Contratti SET QuestAltezza = NULL, QuestPeso = NULL, QuestPressioneMax = NULL, QuestTrigliceridi = NULL, QuestColesteroloTot = NULL, QuestColesteroloHdl = NULL, [QuestFlagDiabete?] = NULL, [QuestFlagInfarti?] = NULL, DataCancellazioneDatiSensibili = NULL, Note = Note + 'Scaduta validità proposta in data ' + CAST(GETDATE() AS nvarchar) WHERE NOT DataCancellazioneDatiSensibili IS NULL AND DataCancellazioneDatiSensibili < DateAdd(d, 1, @dataElim) AND Status <> 100 AND Status <> 200 AND NOT ID IN (SELECT NumeroProposta FROM CarichiContabili WHERE TipoCarico = 1) AND Contratti.ID NOT IN (SELECT Contratti.ID FROM Contratti WHERE (((Contratti.IDPartner) IN (SELECT DISTINCT Contratti.IDPartner FROM Contratti INNER JOIN CarichiContabili ON Contratti.ID = CarichiContabili.NumeroProposta WHERE (((CarichiContabili.TipoCarico)=1)))))) SET @eliminati = @@ROWCOUNT UPDATE IntMaster SET DataUltimaEliminazioneDatiSensibili = GETDATE() DECLARE @risultato as nvarchar(50) SET @risultato = 'Eliminati i dati sensibili di ' + CAST(@eliminati as nvarchar) + ' proposte' EXEC [dbo].[addToLog] @risultato, 'Stored procedure: eliminaDatiSensibili', 5
  16. 16. Obiettivi:  Riprodurre tutte le funzionalità del vecchio software di automazione  Rispettare gli standard aziendali  Garantire un alto livello di servizio (alta disponibilità)  Avere margine di crescita futura
  17. 17. Alcuni aspetti interessanti dell’implementazione degli automatismi:  Successivamente alla definizione delle metodologie risolutive, è stata adottata una strategia di sviluppo mista top-down e bottom-up, orientata ad un precoce debug dei moduli software creati.  La produzione PDF avviene tramite la libreria iTextSharp (al ritmo di 50 documenti al secondo).  La classe che si occupa di scrivere sul log i messaggi di errore è realizzata secondo il design pattern Singleton.  La mutua esclusione dell’accesso metodi della classe Logger è gestita tramite Lock.
  18. 18. Il software sviluppato ha soddisfatto i requisiti imposti dall’azienda, e l’entrata in produzione delle prime funzionalità è prevista a breve.  Riprodurre tutte le funzionalità del vecchio software di automazione  Rispettare gli standard aziendali  Garantire un alto livello di servizio (alta disponibilità)  Avere margine di crescita futura
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×