Monitoring applicativo SaaS Tutorial 30/09/2015. Finalità Il monitoraggio applicativo per verificare, quantificare e controllare l’automazione introdotta.

Slides:



Advertisements
Presentazioni simili
DiFMon Distributed Flow Monitor Claudio Mazzariello, Francesco Oliviero, Dario Salvi.
Advertisements

Informatica II – Basi di Dati (08/09) – Parte 1
SOFTWARE GESTIONE RIFIUTI
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA
Scomposizione funzionale
Procedure e funzioni A. Ferrari.
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Gestione dell’inventario degli Asset aziendali con Systems Management Server 2003 Fabrizio Grossi.
PHP.
I linguaggi di programmazione
Java Enterprise Edition (JEE)
OUTLINE Riprogettazione del database del portale Web della Facoltà di Ingegneria Sviluppo di una applicazione WEB DB : HOMEPAGE DOCENTI Architettura multilivello.
Acquisti OnLine Progetto
Java2 Esercitazioni del corso di Sistemi Informativi Marina Mongiello
Progetto MODA-ML Biella, 30 novembre 2001 Sistema di interscambio messaggi Luca Mainetti HOC - Hypermedia Open Center Dipartimento di Elettronica e Informazione.
1 12. Progettare Sistemi Real-Time Progettare sistemi software il cui comportamento è condizionato da vincoli di tempo Mostreremo perché i sistemi real-time.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Analisi dettagliata e design B. Pernici M.G. Fugini AA
Progetto realizzato da: Francesco Seccia Matr Marco Spinelli Matr
Corso di Informatica (Programmazione)
Un framework per il pattern MVC
Sistemi Operativi GESTIONE DEI PROCESSI.
WP3 – Fornitura per realizzazione Prototipo Condivisione obiettivi e scenari duso 12 Giugno 2008.
Presentazione a cura diSlide n.1 AVIPA 1. Presentazione generale dell'ambiente software Viterbo, 10 Dicembre 2008.
Struts. Framework open source per lo sviluppo di applicazioni web su piattaforma J2EE. Progetto inizialmente sviluppato come sotto-progetto di Apache.
Architettura Java/J2EE
Reti di Calcolatori L-S Un Sistema Decentrato di Allocazione del Carico per Applicazioni di Calcolo Distribuito Mauro Bampo.
Distributed File System Service Dario Agostinone.
LOCALIZZAZIONE SATELLITARE GEOREFENRENZIATA. OBIETTIVI Gestire il database cartografico al fine di poter visualizzare la posizione dei mezzi localizzati,
Ing. Enrico Lecchini BetaTre S.r.l.
Chinosi Michele – matr.: La seconda release di Virtuose basata su database XML La seconda release di Virtuose basata su.
Ottobre 2007 Predisposizione e presentazione della domanda di nullaosta.
Assessorato alla Cultura e Politiche Giovanili
Riservato Cisco 1 © 2010 Cisco e/o i relativi affiliati. Tutti i diritti sono riservati.
LA GESTIONE DELLE FIERE
Presentazione del problema Obiettivo: Lapplicazione di Search of Sematic Services permette di ricercare sevizi semantici, ossia servizi a cui sono associati.
Linguaggi e modelli computazionali LS Manni Tiziano
1 Il Sistema Operativo: Esempio n Le operazioni effettuate sembrano abbastanza semplici ma … n Provocano una serie di eventi in cui vengono coinvolte sia.
DOCUMENTAZIONE BACKOFFICE. DETTAGLIO SOFTWARE BACKOFFICE.
Lezione 8.
Protocolli e architetture per WIS. Web Information Systems (WIS) Un Web Information System (WIS) usa le tecnologie Web per permettere la fruizione di.
N4N Platform Architecture PA Inside outlook.
Controllo di gestione, strumenti di pianificazione
Laboratorio di Servizi Web - servlet - Ardissono 1 Java Servlet API package javax.servlet: include classi e interfacce di gestione di servlet indipendenti.
Architetture a componenti Java per la realizzazione di DSS distribuiti Giordano Vicoli - ENEA 28 Ottobre 2003.
Eprogram informatica V anno. ASP.NET Introduzione ASP.NET (Active Server Page) è il linguaggio che, sfruttando la tecnologia.NET, permette di: -scrivere.
Analisi dettagliata e design
Misure di Sicurezza per gli Strumenti Elettronici Gianpiero Guerrieri Dirigente Analista Responsabile I.C.T.
Laboratorio di Progettazione A cura di: Arosio Cattaneo Prandi
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
By: Powered by:. Tecnologia Microsoft La soluzione CCAnalyzer utilizza la tecnologia OLAP (On Line Analytical Processing) di Microsoft presente nel software.
Relatore: Prof. Ing. Stefano SalsanoLaureando: Flaminio Antonucci.
Google Visualization API
SAMOT SISTEMA AUTOMATICO DI MONITORAGGIO TRAFFICO MCA MODULO CORRELAZIONE ALLARMI FRANCO NONNE GIUSEPPE FRISONI.
Work Office Gestione Documenti ERP su piattaforma ISeries. I.Soft Ingegneria del software Consulenza e progettazione.
Sistemi di Gestione dei Dati e dei Processi Aziendali Computer-Assisted Audit Technique (CAAT)
Manuale Utente – i-Sisen Questionario dei Consumi
Manuale Utente – i-Sisen Questionario del Gas Naturale
GESTIONE RETI TCP/IP l troubleshooting è necessario per risolvere molti problemi che si possono verificare all'interno di una rete, una delle aspirazioni.
Eprogram informatica V anno.
ISCRIZIONI
0 Laboratorio Informatica - SAS – Anno Accademico LIUC Alcune indicazioni Dettaglio lezioni: Prima : Michele Gnecchi – Introduzione a SAS Guide.
NOTIFICHE  Notifich è una funzionalità interna al nostro sistema che permette di inviare brevi messaggi di notifiche agli utenti che porto.
SISTEMA GESTIONE TOMBINI
Insegnamento “Tecniche audiovisive” Corso di Laurea in Ingegneria delle Comunicazioni Yahoo! Widget TV Marco Teodori Assistente Ricercatore - Fondazione.
Gestire i dati: download e salvataggio. L’importanza dei dati La quasi totalità delle applicazioni hala necessità di gestire varie funzionalità relative.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Eccezioni in Java. Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel linguaggio allo scopo.
The Tavolo™. DESCRIZIONE 1 IL BISOGNO DELL’AZIENDA La necessità dell’azienda consiste nella volontà di posizionarsi come figura di riferimento innovativo.
Transcript della presentazione:

Monitoring applicativo SaaS Tutorial 30/09/2015

Finalità Il monitoraggio applicativo per verificare, quantificare e controllare l’automazione introdotta da un sistema informativo nell’ambito dei processi di business o aziendali. Questo può essere ottenuto mediante:  Monitoraggio funzionale La tracciatura delle attività funzionali delle applicazioni Il monitoraggio dei processi  Uno strumento che consenta di creare metriche per l’aggregazione delle attività funzionali in indicatori utili alle analisi di business.

Funzionalità implementate Censimento dei processi e delle attività funzionali (primo prototipo) Disegno dei processi (secondo prototipo) Dashboard per il monitoraggio dei processi e delle attività funzionali (primo prototipo) Alerting sui processi (secondo prototipo) Possibilità di esaminare gli eventi prodotti dal monitoraggio infrastrutturale che potrebbero essere collegati ad una anomalia segnalata dal monitoraggio applicativo (secondo prototipo) Possibilità di creare metriche, schedularne l’esecuzione e visualizzarne il risultato (secondo prototipo) Accesso centralizzato ai log applicativi (primo prototipo)

Utilizzatori Process Stakeholder – Può monitorare la corretta esecuzione dei processi e, in caso di anomalia, individuare facilmente le responsabilità. BI Analyst – Può creare metriche per raccogliere informazioni utili per l’analisi dei processi di business. Application Developer – Utilizza la piattaforma per il troubleshooting. Es. gli è stato segnalato un errore ma in maniera poco circostanziata, tramite la piattaforma può ricostruire con precisione il caso d’uso che lo ha provocato. System Administrator – Utilizza la piattaforma per il troubleshooting. Es. gli sono stati segnalati rallentamenti ma le macchine non sono in sofferenza, tramite la piattaforma può verificare dove le attività funzionali procedono più lentamente per isolare un errore di configurazione.

Architettura Logica definitiva (secondo prototipo) Probe API e Event API – generano eventi applicativi. ESB e Complex Event Processor Raccolgono gli eventi. Li elaborano e li correlano. Controllano i processi e creano eventi di errore. Base dati No-Sql memorizza eventi e log Servizi Tutte le funzionalità offerte dalla piattaforma sono esposti come servizi I log non hanno bisogno di essere elaborati, vengono raccolti e memorizzati direttamente su base dati documentale.

Architettura del primo prototipo Verranno introdotti successivamente gli altri componenti: Probe API (invio degli eventi automatizzato) ESB e Complex Event Processor (verifica esecuzione processi) Console di configurazione metriche e trigger

Architettura del primo prototipo I prodotti utilizzati: Elasticsearch Logstash Kibana Tomcat Il software sviluppato: Applicazioni di test Event API Servizi Console di monitoraggio

Integrare le applicazioni, le librerie Event API Permette di creare e inviare eventi dal codice applicativo Probe API Verrà istallata sui container applicativi. Provvederà, in maniera automatica e senza la necessità di interventi sul codice, a segnalare tutte le attività il cui completamento richiederà l’attraversamento dei confini del container applicativo.

Integrare le applicazioni, il modello dati dell’evento L’evento è un messaggio che viene generato nell’applicazione e che trasporta le informazioni di monitoraggio:  Principali informazioni del contesto funzionale-applicativo Processo Esecuzione Attività Applicazione  Principali informazioni del contesto infrastrutturale Identificativo macchina PID  Eventuali dati di business Molte di queste informazioni verranno generate automaticamente dalla piattaforma o dalle librerie

Integrare le applicazioni, il modello dati dell’evento Processo - L’istanza di un processo raggruppa tutte le attività funzionali che sono svolte all’interno di un processo funzionale riconoscibile dall’utente. E’ composto da una o più esecuzioni. All’interno di un evento è memorizzata sia la classe del processo a cui sta partecipando (il codice processo) che l’identificazione della sua istanza concreta (id processo) Esecuzione - Raggruppa tutti gli eventi e le attività funzionali svolte all’interno di un thread applicativo intesa come una successione strettamente sequenziale di istruzioni (Es. l’elaborazione di una http request da parte di una servlet). Un’esecuzione è definita da una evento che ne segnala l’inizio ed un altro che ne sancisce la fine. Attività - Modella una generica attività funzionale, come ad esempio l’emissione di una fattura. E’ sempre composta da un evento che ne segnala l’inizio ed un evento che ne segnala la fine. Applicazione – Ogni processo viene contrassegnato con un codice applicazione che identifica univocamente da quale modulo applicativo è stato generato.

Integrare le applicazioni, gli step 1.Censire i processi, le esecuzioni, le attività e le applicazioni nella piattaforma di monitoraggio tramite la console web. 2.Inserire la libreria nel classpath dell’applicazione. 3.Usare la classi EventFactory e EventDispatcher per creare ed inviare gli eventi.

Integrare le applicazioni, code snippet //Creo un evento (rappresentato dalla classe AppEvent) che segnala l’inizio del //thread applicativo (esecuzione) AppEvent eventStartExec = EventFactory.createStartExecutionEvent( Costanti.COD_PROCESSO_AGGIORNA_AUTORE, idInstProcesso, Costanti.COD_APPLICAZIONE, Costanti.COD_ESEC_VISUALIZZA_AUTORE, "inizio a preparare la pagina per la visualizzazione dell'autore" ); //Invio l’evento EventDispatcher.sendByLog(eventStartExec); …

Esempio completo, preparare una Servlet public void doPost(HttpServletRequest req, HttpServletResponse resp){ //creo un id di processo a partire dall’id della sessione String idInstProcesso = req.getSession().getId()+"-"+new Date().getTime(); //lo memorizzo in sessione per poterlo recuperare nelle successive richieste req.getSession().setAttribute("idInstProcesso", idInstProcesso); //Creo un evento (rappresentato dalla classe AppEvent) che segnala l’inizio del //thread applicativo (esecuzione) AppEvent eventStartExec = EventFactory.createStartExecutionEvent( "updateFormAutore1", "inizio dell'esecuzione per la visualizzazione dell'autore da modificare", Costanti.COD_PROCESSO_AGGIORNA_AUTORE, idInstProcesso, Costanti.COD_APPLICAZIONE, Costanti.COD_ESEC_VISUALIZZA_AUTORE, "inizio a preparare la pagina per la visualizzazione dell'autore"); //invio l’evento EventDispatcher.sendByLog(eventStartExec); …Codice applicazione..

Esempio completo, preparare una Servlet //Creo un evento che segnala l’inizio di una attività funzionale AppEvent eventStartAtt = EventFactory.createStartActionEvent(eventStartExec, "updateFormAutore2", "inizio query", Costanti.COD_ATT_INTERROGA_ENTITA_AUTORE, "inizio query"); //invio l’evento EventDispatcher.sendByLog(eventStartAtt); …Codice applicazione.. //Creo e invio un evento che segnala un errore applicativo if (…condizione di errore…){ EventDispatcher.sendByLog(EventFactory.createErrorEvent( eventStartAtt, "updateAutoreErr ", "Errore durante l'aggiornamento", "Il cognome di un autore non può essere lasciato vuoto (" + autore.getNome() + ")" ) ); } …Codice applicazione.. //Creo e invio un evento che segnala la fine di una attività funzionale EventDispatcher.sendByLog(EventFactory.createEndActionEvent(eventStartAtt, "updateFormAutore3", "fine query", "fine query") ); …Codice applicazione.. //Creo e invio un evento che segnala la fine del thread applicativo (esecuzione) EventDispatcher.sendByLog( EventFactory.createEndExecutionEvent(eventStartExec, "updateFormAutore4", "fine dell'esecuzione per la visualizzazione dell'autore da modificare", "pagina per la visualizzazione dei dettagli dell'autore preparata") ); }