Sistemi Informativi Aziendali Facoltà di Ingegneria, CDL Informatica Università degli Studi di Salerno Anno accademico 2008/2009
Business Process Management e Content Management System nell’Enterprise 2.0 Autori: Giuseppe D’Aniello, matricola 0610700232 Vincenzo De Notaris, matricola 0610700199 Maria Lorusso, matricola 0610700302 Dionigi Marzucca, matricola 0610700201
Obiettivo: •
Presentare il Business Process Management e il Content Management System inquadrandoli nel contesto dell’ Enterprise 2.0.
• Sperimentazione di software per il BPM e il CMS: Intalio|BPMS e Salesforce Content.
Outline: •
Panoramica sull’Enterprise 2.0.
• Business Process Management: definizioni, metodologie e stato dell’arte • Software: Intalio|BPMS:
•
Funzionalità e architettura;
Sperimentazione: processo di invio e-mail;
Considerazioni.
Content Management System: definizioni e caratteristiche.
• Software: SalesForce Content:
•
Funzionalità e architettura;
Sperimentazione: pubblicazione di un listino;
Considerazioni.
Conclusioni.
2
Enterprise 2.0 Mettere in discussione i modelli tradizionali, adattarsi alla realtà sociale circostante. Fin dai tempi di Henry Ford la competitività dell’impresa nel medio e lungo termine si fonda sulla capacità di rinnovare e rispondere a nuove necessità. L’impresa tradizionale, fatta di gerarchie, spazi e orari di lavoro ben definiti, mostra tutti i suoi limiti nella società moderna. Probabilmente il modo in cui concepiamo la stessa organizzazione aziendale non esiste più. Oggi, infatti possiamo definire spazio di lavoro qualsiasi luogo in cui si è chiamati a svolgere un’attività, non necessariamente all’interno della struttura dell’impresa. Anche la gerarchia perde il suo significato, in quanto chiunque sia in grado di apportare un aiuto all’interno dell’impresa è considerato un degno collega. Da ciò si deduce che al centro dell’organizzazione aziendale non vi è più il processo ma l’uomo. Come già detto, con lo sgretolarsi della gerarchia nasce il concetto di collaborazione emergente, al fine di sfruttare a pieno le capacità del singolo individuo dal momento che ognuno apporta all’azienda quelle che sono le sue conoscenze. Affinché tale risorsa possa essere disponibile a chi ne ha bisogno è necessario utilizzare tecnologie di social network, in modo che i saperi si diffondano e raggiungano colui che ne necessita, in tempi brevi. Per rendere possibile tutto ciò, i processi e i sistemi devono essere riconfigurati ponendo al centro l’individuo. La spinta per questo cambiamento non può venire dalle gerarchie tradizionali, ma piuttosto dalle nuove tecnologie dell’informazione che abiliteranno questo nuovo modo di fare l’impresa.
3
Nasce così l’Enterprise 2.0, un insieme di approcci tecnologici orientati all’abilitazione di nuovi modelli organizzativi basati sul coinvolgimento diffuso, la collaborazione emergente, la condivisione della conoscenza e lo sviluppo e valorizzazione di reti sociali interne ed esterne all’organizzazione.
Le tecnologie dietro la rivoluzione del Web
Non si può parlare di Enterprise 2.0 senza conoscere le tecnologie che stanno alla base di questa idea innovativa. Tali tecnologie vengono dalla rivoluzione del Web: il Web 2.0. Il Web 2.0 risponde alle necessità delle persone di far parte di un’unica comunità globale nel quale comunicare e condividere la conoscenza. Costituisce anzitutto un approccio filosofico alla rete che ne connota la dimensione sociale. Dal punto di vista tecnologico, sebbene gli strumenti della rete possano apparire invariati (come forum, chat e blog, che "preesistevano" già nel web 1.0), é la nuova modalità di utilizzo di essi ad aprire nuovi scenari fondati sulla possibilità che ha l’utente di fruire e di creare/modificare i contenuti multimediali.
Gli strumenti “capisaldi” che contraddistinguono il nuovo approccio all’utilizzo della rete sono:
Wiki: Il Wiki è un sito il cui contenuto può essere modificato dai suoi utilizzatori. Ha come scopo quello di condividere, scambiare, modificare e ottimizzare la conoscenza in modo collaborativo. Il wiki più famoso è Wikipedia, un'enciclopedia online, multilingue, a contenuto libero, redatta in modo collaborativo da volontari. E' l'esempio più evidente di condivisione della conoscenza su vasta scala. Forum: Il termine Forum può riferirsi all'intera struttura informatica contenente discussioni e messaggi scritti dagli utenti, a una sua sottosezione oppure al software utilizzato per fornire questa struttura. Un senso di comunità virtuale si sviluppa spesso intorno ai forum che hanno utenti abituali. Per correttezza di analisi è bene fare una precisazione: i Forum rappresentano in arte pratica uno strumento di comunicazione e condivisione di conoscenze, ma il loro concepimento è precedente alla definizione di Web 2.0; sono una naturale evoluzione delle vecchie Usenet usate agli albori della diffusione capillare delle reti informatiche.
Social Bookmarking: Servizio basato sul web, dove vengono resi disponibili elenchi di segnalibri (bookmark) creati dagli stessi utenti. Sono consultabili e condivisibili con gli altri utenti appartenenti alla stessa realtà virtuale.
4
Blog: Il blog è una sorta di diario virtuale, un sito tipicamente personale nel quale l’utente può pubblicare liberamente contenuti. L’insieme di blog tra di loro interconnessi rappresenta quella che viene denominata Blogsfera, ove bloggers (o blogghisti o blogonauti) leggono pubblicazioni altrui, creano dei collegamenti, fanno citazioni. I blog tra loro interconnessi hanno sviluppato una vera e propria identità culturale.
Rss feed : Unità di informazione usata per rendere interscambiabile il contenuto tra utenti. Un feed fornisce all'utilizzatore una serie di contenuti aggiornati di frequente in maniera del tutto automatizzata. Il loro uso principale é legato alla possibilità di creare informazioni di qualunque tipo a cui un utente può accedere molto comodamente. L’RSS (Really Simple Syndication) è il formato per la distribuzione di contenuti web. E' basato su XML (eXtensible Markup Language, un metalinguaggio creato e gestito dal World Wide Web Consortium che permette di definire la grammatica di diversi linguaggi specifici derivati), da cui ha ereditato la semplicità, l'estensibilità e la flessibilità. Quando si pubblica una notizia in formato RSS, la struttura viene aggiornata con nuovi dati. Dato che il formato è predefinito, un qualunque lettore RSS potrà presentare in maniera omogenea notizie provenienti dalle fonti più diverse. Quelle appena presentate sono solo alcune delle tecnologie del Web 2.0, che rappresentano la base su cui si fonda l’Enterprise 2.0. L’adottare tali strumenti, però, non implica che un organizzazione possa definirsi Enterprise 2.0: usare un wiki o un forum all’interno della propria azienda non significa certo essere un impresa 2.0! L’introduzione dei nuovi strumenti tecnologici non deve essere mai, in questo senso, concepita in modo avulso dagli obiettivi organizzativi. Ogni azione, ogni iniziativa, deve essere guidata da una strategia di cambiamento vero e profondo, una trasformazione del contesto e delle modalità stesse con cui le aziende operano. Non si tratta di modificare specifici elementi del sistema, ma di cambiare il sistema stesso, i suoi riferimenti, le sue regole, i suoi valori. Accanto alle tecnologie ereditate dal web 2.0, vi sono altri paradigmi di progettazione software, come ad esempio la progettazione delle interfacce grafiche tramite le Rich Internet Application (RIA), come le interfacce Smart Client, le tecnologie Flash e le tecnologie Ajax. Queste tecnologie ci permettono di avere le interfacce stand-alone alle quale siamo abituati anche sul web, ma soprattutto permettono di ridefinire l’interfacce secondo le esigenze di ogni singolo utente.
5
Vantaggi dell’Enterprise 2.0 I maggiori vantaggi che l’Enterprise 2.0 offre all’interno delle aziende che l’adottano sono i seguenti: -
-
-
-
Riduzione dei costi del TCO (Total Cost of Ownership). Il TCO rappresenta i costi di proprietà che l’azienda deve sostenere. E’ un modo per calcolare tutti i costi del ciclo di vita di un’apparecchiatura informatica dall’istallazione, alla gestione, alla manutenzione. Tali costi si riducono perché i nuovi paradigmi software permettono di fruire di servizi gestiti da terzi. Capitalizzazione della conoscenza disponibile in azienda. Ognuno apporta in azienda il suo sapere grazie alle nuove tecnologie di social network. Ciò permette di poterne usufruire nel luogo e nel momento in cui se ne ha bisogno. Spinta competitiva. Per rincorrere una sempre più frenetica evoluzione tecnologica e mantenere una posizione di vantaggio sul mercato, le aziende aprono i propri confini stabilendo una conversazione onesta e proficua con clienti e partner. Questo sforzo di condivisione, coinvolgimento e co-creazione richiede un mutamento profondo della cultura e dei modelli di gestione delle risorse. Dipendenti, partner e clienti diventano i veri motori dell’innovazione, mentre l’azienda assume un inedito ma potentissimo ruolo di facilitatore e propositore di esperienze legate ai prodotti. Riconfigurabilità adattativa. Visto il dinamismo del mercato in cui le nuove imprese si trovano, le persone hanno bisogno di riconfigurare velocemente i propri processi e le proprie attività. Tecnologie come SOA, BPM, Mash up, SaaS, RIA, riescono a dare alle imprese, e in alcuni casi agli stessi individui, strumenti per ridefinire ed adattare i processi con una dinamicità, flessibilità e personalizzazione difficilmente ottenibili con le tecnologie tradizionali.
Nell’ Enterprise 2.0 migliorano le possibilità di collaborazione e coordinamento tramite strumenti di condivisione, contatto continuo tra i componenti di un team che lavorano congiuntamente, ma in maniera distribuita, a una stessa iniziativa di progetto. Dare voce alle persone, inoltre, porta a sua volta a stimolarle a partecipare all’attività di team, in quanto ognuno di loro ha la sensazione che le proprie capacità non vadano sprecate in mansioni ad esse poco inerenti. Si induce, così, l’individuo a sentirsi parte integrante di un gruppo in cui dà il proprio utile contributo nella ricerca di un obiettivo comune in modo da costruire appartenenza e motivazione. In questo nuovo modo di fare impresa, la gerarchia perde parte del suo potere formale in favore di una più attiva collaborazione fra i dipendenti; si abbattono le barriere geografiche al fine di ridurre i costi, di capitalizzare le conoscenze ed incrementare della produttività.
6
SOA – SaaS - BPM Nel contesto che stiamo esaminando, ruolo fondamentale rivestono le architetture orientate ai servizi (SOA – Service Oriented Architecture). Secondo tale stile architetturale il software viene progettato per componenti, ognuna delle quali fornisce un determinato servizio. Non tutte le componenti devono essere sviluppate all’interno dell’azienda, ma è possibile fruire dei servizi messi a disposizione dalle componenti sviluppate da terzi, tramite nuovi paradigmi di fruizione che vanno sotto il nome di Software As A Service (SaaS). E’ chiaro che in un impresa tutte queste componenti generano valore solo quando sono legate a un processo di business. Addirittura le conseguenze per l’organizzazione di una totale frammentazione del sistema informativo potrebbero essere devastanti: una miriade di componenti con un basso livello di consistenza, coerenza e sicurezza, talmente personalizzati da essere di fatto patrimonio dei singoli e dei gruppi, ma non dell’organizzazione. Sistemi Informativi che si sviluppano come megalopoli senza regole né piano regolatore. E’ indispensabile dunque un ulteriore strato che ci permetta di assemblare questi mattoni elementari per adattarli e legarli ai processi di business dell’azienda. Tale strato è il Business Process Management. Questo modo di progettare ci permette anche di dare un supporto più flessibile ai processi di business e di rispondere quindi a quell’esigenza di riconfigurabilità adattativa dei processi (ovvero di riconfigurare velocemente le proprie attività) che hanno le aziende 2.0.
7
Business Process Management (BPM) Per BPM si intende l’insieme di attività necessarie per definire, eseguire, ottimizzare, monitorare e integrare i processi di business, al fine di creare un processo orientato a rendere efficiente ed efficace il business dell’azienda. Per processo di business o processo aziendale (business process) si intende un insieme di attività correlate e strutturate rivolte alla produzione di prodotti o servizi che vanno incontro alle esigenze dei clienti. Questi processi sono critici per ogni organizzazione, rappresentando una parte significativa dei costi totali. Il BPM è una visione dell'organizzazione aziendale, non ancora molto diffuso in Italia, che prevede la descrizione delle attività aziendali secondo i processi che le compongono.
Ciclo di vita Il ciclo di vita del BPM è costituito da cinque fasi:
1. Progettazione Questa fase comprende sia l’ identificazione e la descrizione dei processi esistenti (as-is) sia la progettazione dei processi che si intende realizzare (to-be). Si vanno a rappresentare il flusso del processo, gli attori che sono coinvolti, gli eventuali rischi e le procedure operative standard. Tale attività è molto importante e delicata perché attraverso una buona progettazione è possibile minimizzare i problemi durante il ciclo di vita dei processi. L’obiettivo di questa fase è quello di ottenere un progetto teorico corretto ed efficiente. E’ necessario essere in grado di descrivere i processi in maniera comprensibile sia agli specialisti dell’IT che a chi si occupa di management. In questo senso viene in aiuto il BPMN – Business Process Modelling Notation. Il BPMN è una notazione grafica standard che permette la descrizione dei processi di business tramite flow chart. Il punto di forza della notazione è l’intuitività della stessa, comprensibile anche da chi non ha competenze informatiche. 8
Dal punto di vista tecnologico, il BPMN è facilmente traducibile nei linguaggi BPEL (Business Process Execution Language), direttamente interpretabili dai motori che eseguiranno il processo.
2. Modellazione Tale fase riceve in input il progetto teorico realizzato precedentemente e analizza come risponde il processo sotto differenti circostanze, cambiando ad esempio le variabili del processo (cambiamento di costi,…).
3. Esecuzione L’automatizzazione dei processi è implementabile sviluppando od acquistando un’applicazione in grado di eseguire gli step richiesti dal processo d’interesse. La cosa, in realtà, ha senso per lo più dal punto di vista teorico e non pratico in quanto è abbastanza raro trovare un software in grado di eseguire tutte le varie fasi di un processo con accuratezza e completezza. Un altro approccio tipico è quello di utilizzare una combinazione di componenti software, seguendo lo stile SOA, come ad esempio i Web Services; è chiaro però che tale approccio ha una complessità maggiore per la gestione dei processi, aumentando anche i costi.
4. Monitoraggio Si effettua il “tracking” dei singoli processi in modo che le informazioni sul loro stato siano facilmente reperibili ed è cosi possibile realizzare statistiche sulle performance di uno o più processi. Un esempio di tracking è essere in grado di determinare lo stato di un ordine di un cliente (ordine arrivato, ordine evaso, …); in questo modo i problemi che eventualmente si verificano in questa fase sono facilmente individuabili ed è quindi possibile correggerli. Inoltre, tali informazioni possono essere condivise anche con clienti e fornitori al fine di migliorare le performance dei processi che li coinvolgono. Il grado di monitoraggio dei processi dipende dal tipo di processo che si va ad analizzare e soprattutto dalle informazioni che il management chiede per valutare e analizzare i processi, anche in termini di frequenza (real-time, periodici, su richiesta, …). Per particolari processi in cui questo aspetto del monitoraggio è particolarmente importante e delicato, si possono utilizzare le BAM – Business Activity Monitoring – le quali estendono ed espandono i tool di monitoraggio generalmente presenti nei sistemi per il BPM.
5. Ottimizzazione Si vanno a ricercare informazioni sulle performance dei processi dalla fase di modellazione e monitoraggio, al fine di andare ad individuare colli di bottiglia, possibili aree in cui minimizzare i costi o altri miglioramenti, e applicare poi questi miglioramenti nella successiva fase di progettazione.
9
E’ possibile utilizzare vari approcci metodologici per realizzare le attività previste dal ciclo di vita del BPM che abbiamo appena presentato.
Una possibile metodologia per progettare ed implementare la gestione dei processi può essere così sintetizzata: 1. 2. 3. 4. 5. 6. 7.
Identificazione del processo analizzato Definizione dei confini (processi fornitori – processi clienti) Definizione di input e output scambiati tra gli attori del processo Definizione delle attività e delle relative procedure che ne regolano lo svolgimento Analisi dei tempi (durata delle attività) Definizione delle prestazioni attese (indici di valutazione) Definizione delle responsabilità di processo
BPM vs BPR Il BPM non è l’unico approccio per la ridefinizione e il miglioramento dei processi di business. Una metodologia , utilizzata fin dai primi anni ’90 è il BPR – Business Process Reingeneering. Il BPR nasce come completo ripensamento e radicale ridisegno dei fondamentali processi di una organizzazione, teso al raggiungimento di fortissimi miglioramenti nei risultati. L’accento è comunque posto sulla discontinuità, sul “salto” in termini di prestazioni, sulla completa assenza di vincoli nella riprogettazione. E’ una metodologia di miglioramento di tipo strutturale che raggiunge gli obiettivi in maniera “discontinua”(dramatic improvements), ridisegnando i processi (business process) nei quali un’azienda opera. Differisce per questo completamente dal BPM in cui gli obiettivi sono ottenuti in maniera incrementale. La discontinuità, il “salto”, non sarebbe possibile intervenendo sull’esistente, ma richiede una ristrutturazione radicale, libera da vincoli, dei processi che sono oggetto dell’intervento, e viene ottenuta grazie all’utilizzo di tecnologie informatiche innovative. Tali tecnologie venivano applicate lasciando invariati i propri processi di lavoro, non portando però a un reale miglioramento. Infatti secondo la metodologia BPR è necessario che le nuove tecnologie siano usate per reingegnerizzare i processi obsoleti delle aziende, e non su processi già esistenti.
BPM in Italia Da vari studi condotti su un campione di piccole e medie imprese italiane è emerso che, sebbene già il 70% delle imprese utilizza le architetture SOA per componentizzare il proprio sistema informativo (in realtà vengono utilizzate all’interno di una singola applicazione o al più orientato all’integrazione tra applicazioni differenti, mentre il numero di casi caratterizzati da un ruolo infrastrutturale delle SOA è ancora limitato), soltanto il 14% associa a questa componentizzazione il successivo strato di orchestrazione delle componenti, ovvero il BPM. Infatti le principali barriere per l’introduzione di metodologie BPM in azienda sono: - Scarsa comprensione delle potenzialità(51%) : La maggiore difficoltà esistente nell’adottare tali strumenti non sta tanto nelle barriere tecnologiche(8%) che molto spesso negli osservatori non vengono addirittura citati, ma più che altro ad un gap di informazioni e conoscenze (54%) che inducono ad avere dei pregiudizi e delle paure da parte di chi non ha compreso e fatto propri i principi di fondo. 10
-
-
-
Difficoltà a identificare e valutare i benefici economici(48%) : Il BPM, se utilizzato a regola d’arte, permette di ottenere un ROI (Return On Investments) più alto. Il problema di questo tipo di barriera è proprio la diffidenza nei benefici economici che le innovazioni legati a strumenti come i BPM possono portare e si ha timore che questi portino a un decadimento degli utili. Scarsa rilevanza per il business(23%) Mancanza di sponsorship (18%) Scarsa conoscenza delle tecnologie(15%): essendo portatori di nuovi tecnologie, i BPM e in particolare i BPMS, non sono spesso alla portata di tutti per quanto riguarda il loro utilizzo. Neccessità di cambiamenti organizzativi(37%) : il BPM comporta anche la riorganizzazione della gerarchia aziendale. Appare evidente come il vertice strategico spesso osteggi questo cambiamento così da preservare il proprio potere formale completamente intatto. Barriere tecnologiche(8%): Le tecnologie non rappresentano un vero problema, al contratio di quando si possa pensare. Come abbiamo visto, infatti, le tecnologie come quelle del web 2.0 sono già molto diffuse, e anche approcci metodologici nuovi come il BPM non richiedono grandi sforzi dal punto di vista delle nuove tecnologie da acquisire.
11
BPMS I software che supportano le attività di BPM vengono chiamati BPMS – Business Process Management Systems. Sono applicativi software di alto livello che permettono di definire, gestire, ottimizzare e controllare i processi aziendali. Consentono di modellare, sviluppare e gestire i processi critici per la missione aziendale, processi che possono estendersi ad applicazioni aziendali multiple, a diversi dipartimenti e partner. I BPMS sono spesso in grado di dialogare con i sistemi già presenti in azienda innestandosi tra utenti, sistemi informativi e processi organizzativi. Rappresentano quindi un modo estremamente veloce, guidato ed efficace di analizzare, rappresentare, eseguire, automatizzare, ottimizzare e gestire tutte le attività che compongono un processo organizzativo aziendale. Il BPMS può essere anche un utile punto di contatto tra utente e progettista del sistema informativo presente in azienda. E’ chiaro infatti che la ridefinizione di un processo aziendale si riflette quasi sempre in modifiche da apportare al sistema informativo, e il BPMS (e in generale il BPM) rende evidente sia all’utente che allo sviluppatore quali sono le modifiche o le estensioni da apportare al sistema informativo. In questo modo si riesce quindi a realizzare una collaborazione più stretta (e quindi produttiva) tra utenti e IT che riusciranno a soddisfare in “real time” le richieste di aggiornamento del sistema informativo. Questo è un aspetto estremamente importante in quanto in seguito al momento di grande evoluzione del mercato, i sistemi informativi devono supportare la necessità degli utenti di conoscere in profondità i propri processi, di controllarli e avere le giuste informazioni al fine di adeguare in tempi brevi l’organizzazione alla dinamicità del mercato.
Un moderno sistema BPMS fornisce l’ambiente necessario per l’esecuzione del flusso di un processo, descritto con un linguaggio di alto livello per la definizione dei processi (una notazione grafica standard, ad esempio il BPMN) direttamente eseguibile (interpretabile) dal motore (process engine) del sistema BPMS. Un repository di processi può essere usato per immagazzinare i flussi predefiniti dei processi più comuni, quali registrazione ordini, provisioning, rating, fatturazione, gestione dei pagamenti e dei problemi della clientela. In questo modo, è più facile modificare il flusso di un processo (per esempio, in caso d’introduzione o modifica delle politiche commerciali della società o d’introduzione di nuovi servizi). Senza un BPMS, l’operatore dovrebbe continuare a modificare direttamente la logica di processo integrata nelle applicazioni software nei sistemi di back-end. Con un BPMS, al contrario, tutti i cambiamenti sui processi sono centralizzati. Questo aspetto consente un controllo migliore e più efficiente dei cambiamenti di processo.
Quando un processo cambia, o nuovo processo richiede un’interazione con un nuovo sistema e/o con il sistema di un partner, l’integrazione può essere fatta attraverso l’intermediazione del motore del BPMS, utilizzando la tecnologia dei Web Service. I Web Service possono essere visti come uno dei “building block” per l’implementazione di un processo di business; in altre parole, un processo di business può essere composto da un certo numero di attività implementate attraverso dei Web Service. I Web Service sono un nuovo modo di sviluppare e mettere in esercizio le applicazioni software di una impresa. Essi consentono un’integrazione lasca fra le componenti software di un sistema, utilizzando messaggi basati sullo standard XML scambiati attraverso protocolli internet standard. I Web Service possono connettere piattaforme e applicazioni distribuite a server e mainframe esistenti via Internet. 12
I Web Service offrono un modo semplice, elegante ed efficiente per un BPMS di accedere ad un’infrastruttura esistente. Analogamente, un modello di processo può essere pubblicato come un Web. Service.
Nel prossimo paragrafo è presente la descrizione del BPMS che ci era stato chiesto di valutare, Skemma.
13
SKEMMA Skemma è un software BPMS con cui è possibile definire, eseguire, monitorare e migliorare i processi di business. E’ un software distribuito come SaaS (software as a service) 100% web based.
Features:
•
Definizione della business logic semplice e immedita: il tool dispone di un editor molto semplice e intuitivo per la definizione dei processi; questi infatti vengono definiti tramite un interfaccia WYSIWYG (What You See Is What You Get), molto simile a software stand-alone come Microsoft Visio.
•
Definizione di form per gli utenti dei processi: si ha la possibilità di definire interfacce per gli utenti per i compiti dei processi aziendali precedentemente definiti, che richiedono l’intervento di un utente, al fine di guidarlo nello svolgere tale compito. E’ possibile fare ciò tramite una semplice interfaccia drag’n’drop, creando form web based molto user friendly.
•
•
Process Versioning: è possibile gestire le varie versioni di un processo, nel senso che il software memorizza automaticamente le varie modifiche che sono state apportate a un processo, in modo da avere uno storico di ciò che si è fatto.
•
Esportazione e importazione di processi: E’ possibile esportare e importare la definizione dei processi in diversi formati
•
Monitoraggio: il sistema notifica all’ utente quando qualcosa non è andato come pianificato. Oltre a poter visualizzare tali allarmi nella dashboard o nella schermata di monitoraggio del software, è possibile anche decidere come essere raggiunti da tali avvisi, ad esempio tramite email o sms.
•
Reporting: Il sistema, oltre a mettere a disposizione dei report built-in già pronti, permette di definire secondo le propri esigenze nuovi modelli di report. 14
•
Account: il software ha un sistema di accounting basato su 4 profili utente: amministratore, modellista, addetto al monitoraggio e utente comune.
Di questo software è stata rilasciata una versione open beta nell’ottobre del 2007. Il progetto da allora non ha subito nessun aggiornamento e molto probabilmente è stato abbandonato. Risulta quindi evidente l’impossibilità di utilizzare tale software ai fini della sperimentazione richiestaci. Abbiamo quindi deciso di sostituirlo.
15
Intalio|BPMS La soluzione più adatta per i nostri scopi ci è sembrata essere Intalio|BPMS della Intalio. Intalio|BPMS è una suite di prodotti completa che supporta tutte le attività del ciclo di vita del BPM, dalla definizione di processi, all’esecuzione, fino ad arrivare al monitoraggio dello stesso. La suite è composta principalmente da due software: Intalio|Designer e Intalio|Server.
Intalio|Designer Intalio|Designer è un ambiente di sviluppo integrato (IDE) Eclipse-based. Il fatto di essere Eclipse-based, ci ha fatto optare per questa soluzione poiché il nostro gruppo utilizza già Eclipse e questo ha permesso di ridurre drasticamente i tempi di apprendimento per l’utilizzo di Intalio. Un ulteriore motivo di tale scelta è il fatto che il software è open source, quindi si può provare senza limiti di tempo e senza nessun costo. La documentazione fornita sia dalla stessa Intalio che dalla comunità di sviluppatori.
Intalio|Designer utilizza la notazione BPMN per la definizione dei processi. Creare un diagramma BPD è estremamente semplice e non richiede nessuna particolare competenza, se non quella di conoscere la sintassi BPMN.
Caratteristiche L’editor per la definizione del BPD è composto da un’area di lavoro in cui vanno trascinati i vari costrutti dello standard BPMN presenti nelle palette dei componenti. Il sistema notifica in real-time gli errori di sintassi commessi, suggerendone anche l’eventuale correzione. Nel Designer è incluso anche il Form Editor per la definizione delle form che saranno visualizzate all’utente finale che interagirà con il processo. Fornisce completo supporto per l’utilizzo di Web Services che possono implementare i vari task del processo. In questo modo è possibile realizzare processi senza scrivere nessuna riga di codice, ma semplicemente andando a configurare e collegare i vari web services ai task, avendo cura di definire il tipo delle variabili e dei messaggi che i Web Services si scambiano. Sono necessarie solo conoscenze di base sull’XML. Una volta definito il processo e le form, si passa alla fase di deployment, a nostro parere uno dei punti di forza di questa suite. Infatti, tutto il processo di deploy consiste letteralmente in un solo click. E’ sufficiente infatti specificare solo il server Intalio su cui si intende pubblicare il processo, e il sistema provvede in modo automatico a validare il codice, compilarlo , generare le form e 16
compilare il codice (o meglio, traduce il processo descritto in BPMN in linguaggio comprensibile al motore del BPMS, ovvero in BPEL), risolvere eventuali dipendenze software, e in questo modo si ha il processo in esecuzione sul server.
Requisiti di sistema • • • •
Sistema Operativo: Windows, Mac OS X, Linux Java 1.5 o 1.6 SDK 200 MB di spazio libero su disco 512 MB di RAM (per Windows)
Non richiede una installazione di Eclipse in quanto il file .jar di installazione contiene già l’intero set di plugin di Eclipse 3.1 SDK.
Intalio|Server Il cuore del server è il motore del BPMS che esegue il codice definito in linguaggio BPEL 2.0. E’ uno dei BPEL engine più usati, sia per le buone prestazioni sia perché è conforme allo standard BPEL 2.0.
Caratteristiche Il server è basato su tecnologia J2EE, ed è per questo motivo che è completamente portabile. E’ completamente conforme allo standard BPEL 2.0. E’ stato progettato secondo lo stile architetturale SOA, ed in questo modo si possono integrare sistemi esterni che espongono i loro servizi come web services e i processi che vogliamo distribuire a terzi possono registrare la loro interfaccia WSDL su un registro UDDI. Dal punto di vista dell’amministratore che andrà ad utilizzare questo server, il sistema gli fornisce utili strumenti che gli permettono di avere un controllo globale sui processi. Tutti gli strumenti sono web based e quindi fruibili tramite browser. La pagina principale permette di avere una visione di tutti i processi con informazioni globali sul loro stato (come ad esempio, quante volte un processo è stato completato o è fallito) ed è possibile avviare, sospendere o cancellare un processo. Per ogni processo è presente una console che permette di testarlo in locale, visualizzare il flusso del processo (nel senso che il sistema segnala quale task del processo è ora attivo, segnalando quindi cosa sta facendo l’utente), e di visionare tutti i file creati dal designer in fase di deploy (file wsdl, xml,bpel,…)
Requisiti di sistema 17
• •
• •
Sistema Operativo: Windows 2000,Windows XP, Windows 2003 Server, Linux, Mac OS X Java 1.5 SDK (non è compatibile con Java 1.6 SDK) 512 MB RAM (minimo) 200 MB di spazio su disco (minimo)
Sperimentazione di Intalio|BPMS Al fine di mostrare le potenzialità messe a disposizione dal software scelto, proseguiamo col mostrare, attraverso un semplice esempio, come si realizza, distribuisce e controlla un processo con Intalio|BPMS.
Obiettivo: Realizzare il processo di invio e notifica di ricezione di un e-mail.
Realizzazione: Si crea un nuovo progetto in Intalio|Designer e per prima cosa si va a definire il processo di invio email che dovrà essere eseguito dal motore BPMS, tralasciando per il momento l’interazione con l’utente. Nel diagramma in BPMN si crea perciò un pool, ovvero un partecipante al processo, che si occuperà di ricevere i dati dall’utente, inoltrare la richiesta di invio mail a un mail-server, e notificare l’esito dell’invio all’utente. Queste tre azioni costituiscono proprio i tre task di questo pool, e sono rappresentati dai tre rettangoli nella figura seguente. I task sono collegati da “flussi di sequenza”, che indicano solo l’ordine di svolgimento di attività e non uno scambio di dati tra i task.
Ora è necessario permettere all’utente di interagire con questo processo. Creiamo perciò un altro pool (cioè un altro riquadro nel diagramma BPMN, con etichetta “client”) che indica l’utente. I task di questo pool sono l’invio della mail e la ricezione della notifica. Il pool client deve scambiare dati con il pool SendEmail, e per questo motivo il task “Invio Mail” è collegato con due “flussi di messaggio” al task “Ricevi Dati”. In questo modo il task Invio Mail passa tutti i dati inseriti dall’ utente al processo di invio mail del pool SendEmail. Tale passaggio dati avviene tramite schema XML, creato automaticamente dal software, come spiegato in seguito. Anche il task Invia Notifica deve poter scambiare dati con l’utente, ed è anch’esso collegato tramite flusso di messaggio al task Ricevi notifica del Client. 18
Il pool Client, rappresentando l’interazione con l’utente e non un processo che deve eseguire il motore BPMS, deve essere settato come non eseguibile, cosicché non sarà tradotto in BPEL.
Per far si che l’utente del processo possa veramente interagire con esso, è necessario però creare delle form da associare ai task che richiedono l’intervento umano. Tali form vengono create utilizzando il WorkFlow Form Editor, un tool grafico messo a disposizione da Intalio|Designer. Con tale tool, è possibile creare le form in maniera molto semplice e intuitiva tramite drag’n’drop dei componenti. Creiamo le due form come mostrate nella figura seguente e poi le associamo ai task del Client semplicemente trascinandole sopra il pool. Finestra del task "Invia Mail":
Finestra del task "Ricevi Notifica":
Il processo di invio vero e proprio dell’e-mail sarà realizzato da un Web Service. Tale Web Service viene aggiunto come task nel terzo pool, chiamato MailServer, e comunicherà tramite flusso di messaggi con il task “Invoca Servizio” del pool SendEmail. Invoca Servizio invierà la richiesta di inoltro e-mail al Web Service, che risponderà con una notifica di invio o con un errore, sempre utilizzando un file XML.
19
Il Web Service contenuto nel task SendEmailHTML ha la necessità di conoscere i dati per l’invio della mail, inseriti dall’utente nella form definita in precedenza. Come abbiamo detto però non c’è passaggio di dati tra i task del pool SendEmail, in quanto essi sono collegati solo da un flusso sequenziale e non di scambio dati. Occorre allora indicare al Web Service dove deve prendere i dati in input e a chi consegnare i dati in output. Per fare ciò utilizziamo un altro tool messo a disposizione dal sistema: il DataMapper. Come si nota dalla figura successiva, per specificare quali dati deve ricevere il Web Service, si seleziona il nome del messaggio che va da Invio Email a Ricevi dati nella colonna a sinistra, e si collegano tutti i dati utili al messaggio che SendEmailHTML riceve in ingresso nella colonna a destra.
Stessa cosa va fatta anche per la ricezione della notifica. Il processo è ora completamente descritto; non resta che pubblicarlo sul server. Come già detto in precedenza, il processo di deployment è semplicissimo: con un solo click è infatti possibile generare tutto il codice necessario e pubblicarlo sul server Intalio.
20
Dal server è poi possibile controllare tutti i processi attraverso la consolle e testarli accedendo come utente del processo.
Conclusioni Intalio|BPMS è una soluzione molto potente ma al tempo stesso molto semplice da utilizzare per definire e gestire business process. Con questo esempio si è voluto mostrare come sia semplice utilizzare tale software e soprattutto il fatto che la definizione di un processo può essere fatta senza scrivere una sola riga di codice e senza avere particolari conoscenze informatiche. Inoltre, cogliendo appieno i vantaggi del BPM, è molto semplice poter riconfigurare il processo in tempi molto brevi. Abbiamo però riscontrato anche alcuni problemi e mancanze nella suite Intalio. In primo luogo, manca un repository con i template dei processi più comuni, che consentirebbe di velocizzare molto la definizione di processi standard. Vi è poi l’impossibilità di modificare il processo a runtime, in quando per poter modificare un processo bisogno eliminarlo dal server e successivamente pubblicarlo nuovamente. A onor del vero però, nessun software BPMS oggi permette di modificare processi a runtime. Inoltre, nonostante si possano gestire gli utenti e i ruoli che essi hanno, associandoli ad esempio a task diversi di uno stesso processo, non c’è la possibilità di gestire nativamente la comunicazione fra gli utenti. Un’ ultima considerazione da fare riguarda i costi di Intalio|BPMS. Sebbene infatti sappiamo che il software è completamente open source e quindi può essere utilizzato gratuitamente, è errato pensare che la gestione di questo BPMS non comporti spese: in primo luogo bisogna infatti considerare la necessità di gestire un server, al contrario di altre soluzioni software on-demand che vengono fruite in modalità SaaS e non comportano costi di proprietà. Bisogna anche considerare i costi per l’assistenza, che soprattutto per progetti complessi non possono essere evitati; questi sono molto onerosi, al contrario di altri BPMS on-demand in cui l’assistenza è compresa nel costo della licenza del software.
21
Content Management System (CMS) Necessità del controllo dell’informazione Reperire le informazioni che servono nel momento in cui servono non è un compito banale. Di solito, malgrado le migliori intenzioni, le informazioni nelle aziende sono confuse, spesso contenute in file e documenti non strutturati, intrappolati nelle LAN aziendali, in e-mail o su singoli computer. Pertanto è arduo per gli impiegati trovare il contenuto di cui hanno bisogno; talvolta poi quello che viene recuperato risulta obsoleto e impreciso. Una problematica del genere in un ambito aziendale complesso non è di poco conto. Si è vista per tanto l’esigenza di disporre di strumenti adatti a trattare nella maniera adeguata la questione. In questo contesto vengono in aiuto i CMS. Definizione Il CMS, acronimo di Content Management System, è un software installabile su un server web che consente di creare, modificare e pubblicare contenuti (documenti, news, immagini, video, file), effettuare una gestione automatizzata dei siti attraverso appositi pannelli di controllo. Si tratta di un applicazione lato server divisa in una sezione di amministrazione, dedita all’organizzazione e la supervisione dei contenuti, ed in una sezione applicativa che consente all’utente la fruizione dei servizi offerti. Appare evidente come un CMS sia fortemente orientato al Web. Il problema dell’astrazione dalla programmazione Comunicare e condividere conoscenza on-line su vasta scala implica la capacità di effettuare pubblicazioni indipendentemente dalla conoscenza di linguaggi di programmazione ipertestuali. Caratteristiche funzionali tipiche Esistono svariati tipi di CMS, taluni specializzati per compiti precisi, altri che tendono a rispondere ad esigenze di carattere più generale. Tipicamente anche CMS di categoria differente presentano delle caratteristiche funzionali comuni, ossia: • •
• •
la gestione di account protetti tramite password; la creazione di gruppi di utenza con permessi specifici (amministratore, moderatore, utente standard); l’utilizzo di contenuti con regole di visibilità determinabili; l’espansione delle funzionalità base tramite l’integrazione di moduli esterni.
22
Salesforce Content (Koral) Introduzione al prodotto Fruire nella maniera corretta e nei tempi adeguati le informazioni desiderate è una necessità primaria per garantire la competitività sul mercato dell’impresa. In precedenza si è parlato di come per rispondere a questa esigenza siano stati introdotti i CMS. L’obiettivo di questa parte della trattazione è descrivere nel dettaglio del sistema di gestione di contenuti utilizzato all’interno della suite di prodotti di Salesforce, ossia il Sales Force Content, precedentemente noto come Koral. Da Koral a Sales Force Content Koral è un Content Management System che dall’aprile del 2007 è entrato a far parte della suite di prodotti di Salesforce ed ha cambiato nome in Salesforce Content. Caratteristiche principali Salesforce Content consente alla comunità commerciale all’interno di un determinato contesto aziendale di identificare il contenuto informativo più rilevante. Le caratteristiche fondamentali sulla quale si basa tale prodotto sono: • •
•
•
Storage: la memorizzazione organizzata è un requisito cardine affinché l’informazione immagazzinata possa esser fruita nel giusto modo. Salesforce Content immagazzina al suo interno i documenti dell’azienda risolvendo il problema della frammentazione. Ricerca: il sistema di ricerca delle informazioni desiderate è basato sul tagging, in perfetta tendenza col Web 2.0. Nel momento della pubblicazione vengono assegnati ai singoli documenti delle parole chiavi (tag) che ne contraddistinguono il contenuto; sulla base di tali tag gli altri utenti di Salesforce Content possono cercare il dato d’interesse. L’obiettivo di fondo è far leva sulla saggezza collettiva dell'azienda utilizzando metodologie proprie delle community. Condivisione: Salesforce Content consente all’utenza di condividere e gestire documenti, fogli elettronici, file multimediali, file in linguaggi ipertestuali, e altro. E’ necessario pubblicare il contenuto in Salesforce Content e definire il gruppo di persone con il quale di desidera condividerlo. Sincronizzazione: un’altra caratteristica cardine di Salesforce Content è la sincronizzazione dell’informazione. Qualora ci fosse necessità di modificare un determinato documento, Salesforce Content è in grado di rendere la versione aggiornata fruibile in maniera immediata a tutta l'utenza. A differenza di quanto accadeva in passato in azienda, con l'informazione frammentata, distribuita “manualmente” agli impiegati, la sincronizzazione rende facile la revisione dei dati.
Gestione dei permessi All’interno dell’azienda non tutte le informazioni devono essere di dominio pubblico. I dati vengono tipicamente distribuiti lungo la scala gerarchica secondo politiche di visione differente sulla base della competenza e dell’affinità. E’ impensabile, ad esempio, che un impiegato semplice possa accedere a documenti inerenti a strategie marketing od amministrativi. Salesforce Content risolve la problematica introducendo l’User profiling ed i Workspace privati. •
•
User profiling: attraverso l’User profiling è possibile definire dei gruppi di utenza che si vanno a differenziare per mansioni svolte all’interno della impresa e relativi privilegi nella consultazione dei contenuti. Ogni utente afferisce ad uno o più gruppi, a seconda del ruolo ricoperto. In questo modo viene quindi definito il “profilo” di ogni singolo lavoratore. Workspace privati: si tratta di aree di lavoro il cui accesso è subordinato a determinati requisiti. I permessi affinché sia possibile lavorare in un dato Workspace vengono specificati dall’amministratore del sistema sulla base dei gruppi di utenza disponibili. 23
Strumenti per l’utilizzatore Una volta messe in evidenza le caratteristiche principale, la descrizione di Salesforce Content si sofferma su alcuni utili strumenti che il software mette a disposizione dell’utenza: •
•
•
•
Tag cloud: un Tag cloud è una rappresentazione visiva dei tag usati nella descrizione di un dato (come sopra spiegato). Si tratta di una lista pesata poiche è tipico attribuire dimensione del testo più grande ai tag maggiormente utilizzati. Si tratta di strumenti utilizzati all’interno dell’interfaccia con lo scopo di rendere quanto più veloce possibile la navigazione dei contenuti. Feedback: col termine feedback si fa riferimento ad un sistema di controllo della qualità delle pubblicazioni. Salesforce Content consentene agli utenti commerciali di valutare o commentare il contenuto, in modo da differenziare ciò che è buono e ciò che necessità di ritocchi. Sottoscrizioni: attraverso il meccanismo delle sottoscrizioni tutti gli utenti ricevono le versioni più aggiornate dei documenti in maniera automatica, senza che essi debbano cercarle. Inoltre, gli utenti possono essere avvisati quando viene aggiornato un documento che li interessa. In questo modo si riduce drasticamente il numero di e-mail da inviare ai vari utenti. Version history: grazie alla gestione delle versioni, è possibile creare un archivio di tutte le versioni di un documento e aggiungere commenti per evidenziare le modifiche apportate in ogni nuova release del documento.
Piattaforma per gli sviluppatori Force.com è una piattaforma-servizio (PaaS – Platform as a Service) che consente agli sviluppatori di creare applicazioni on-demand e senza alcun software. E’ composta da una serie di tool che permettono di creare applicazioni con dei semplici wizards che non richiedono nessuna riga di codice(come l’application frame work builder e Visualforce), da toolkits e web service per i più diffusi linguaggi di programmazione, e dal linguaggio di programmazione Apex. Le applicazioni sviluppate saranno poi eseguite sulla piattaforma Force.com. Presentiamo ora brevemente i principali strumenti che mette a disposizione la piattaforma per creare nuove applicazioni: Application Framework Tale framework da la possibilita di personalizzare applicazioni già presenti o costruire applicazioni from scratch senza scrivere codice. L’application Framework builder offre una serie di tool che permettono di modificare le caratteristiche dei propri dati, il layout di una pagina, creare report, ecc… Web service Api Le Web service api danno la possibilità di accedere ai dati e ai servizi della piattaforma Force.com. Sono disponibili per una grande varietà di linguaggi. E’ possibile accedere ad ogni servizio messo a disposizione dalla piattaforma. Apex and VisualForce E’ possibile estendere le applicazioni di Force.com oltre i confini del frame work utilizzando Apex e VisualForce. Apex Apex è un linguaggio di programmazione procedurale che permette di estendere le funzionalità di Force.com, e si basa sull’utilizzo di trigger, cioè su funzionalità che vengono eseguite quando l’utente 24
compie determinate azioni sui dati. E’ possibile incapsulare tali trigger in classi, al fine di avere un migliore riuso del codice e si ha anche la possibilità di pubblicare tali classi come web service. VisualForce VisualForce dà la possibilità di modificare l’aspetto delle applicazioni di Force.com. E’ possibile prendere dati da più oggetti Force.com, combinarli con web service esterni, e creare un interfaccia 2.0 per l’utente finale. AppExchange E’ un servizio di condivisione di applicazioni di Force.com, che contiene centinaia di applicazioni create dai clienti, dagli sviluppatori e i partner di salesforce utilizzando gli strumenti descritti precedentemente. AppExchange permette di cercare e testare l’applicazione di cui si ha bisogno, di installarla nel proprio account di salesforce e personalizzarla.
25
Sperimentazione di Salesforce Content Specifiche formali Ipotizziamo di dover definire la gestione del processo di pubblicazione di un listino. E’importante che tale listino sia facilmente fruibile ai vari attori dell’impresa, in particolar modo ai rappresentati. I rappresentanti non sono necessariamente locati fisicamente all’interno dell’impresa, bensì sono dislocati sull’intero territorio nazionale. E’ forte la necessità che il listino sia consultabile nei giusti tempi e nelle giuste modalità attraverso un sistema di gestione dei contenuti. Il listino viene stilato sulla base di un indagine di mercato sulla concorrenza e sul calcolo dei costi di produzione della merce; viene redatto dai manager dell’area marketing. Lungo il processo di scrittura od in seguito ad una mancata approvazione, il listino può essere soggetto a modifiche. E’ necessario avere visione della storia del documento. Prima dell’approvazione il listino deve essere visibile esclusivamente all’area marketing. I rappresentanti possono fruire del listino solo successivamente all’approvazione del responsabile. Scopo Attraverso questa sperimentazione si vuol mettere in evidenza come sia possibile far fronte all’esigenze del caso attraverso Salesforce Content, utilizzando in maniera semplice ed intuitiva gli strumenti messi a disposizione del software. Implementazione Una volta sottoscritto un account con Salesforce per l’utilizzo del Content, per realizzare le funzionalità richieste dal caso è necessario seguire una serie di passi: 1. Specificare le figure professionali (i ruoli) presenti all’interno dell’azienda: responsabile dell’ area marketing, manger, rappresentante. 2. Aggiungere nel sistema i profili dei lavoratori specificandone, in particolare, caratteristiche anagrafiche, ruolo e dati di utilità generale. 3. Definire i gruppi in cui vanno ad afferire i lavoratori di un determinato dominio. Nella fattispecie sono necessari due gruppi, uno relativo all’area marketing (responsabile e manager), l’altro per i rappresentanti. 4. Creare un primo workspace, che chiameremo Stesura Listino Primavera – Estate 2009, a cui possono accedere esclusivamente gli utenti appartenenti all’area marketing, ed impostare quest’ultimi come publisher (coloro che possono pubblicare o modificare contenuti). All’interno di esso si andranno ad inserire tutti i documenti relativi alla stesura del listino d’intesse. 5. Creare un secondo workspace, che chiameremo Listino Primavera – Estate 2009, senza vincoli di accesso per tutti gli utenti appartenenti al sistema, aggiunti nel passo numero 2. Per questa area di lavoro è necessario impostare come publisher il solo Responsabile dell’area Marketing e consentire la lettura, il tagging e l’invio di commenti a manager e rappresentanti. All’interno di esso si andrà a pubblicare il listino definitivo, rendendolo disponibile ai vari rappresentanti. 6. Giunti a questo punto, i manager ed il rappresentante dell’area marketing saranno in grado di effettuare qualsivoglia pubblicazione concernente la stesura del nuovo listino desiderato, il tutto all’interno del workspace a loro dedicato e non visibile ai non addetti. Nel caricare un documento, tramite l’apposita voce “Contribute”, è possibile specificare titolo, descrizione, autore e i tag. 7. Per tenere traccia delle eventuali modifiche occorse ad un documento, commentarlo e tener conto del numero di download effettuati da parte degli utenti, occorre selezionarlo all’interno del Workspace ed andare ad utilizzare le funzionalità messe a disposizione tramite un menu a spunta al lato. Semplice ed intuitivo, questo menu rappresenta uno strumento di interazione ed un record delle operazioni effettuate su uno specifico documento. In particolare, la Version 26
History è implementata in automatico, registrando data, ora e peso (in KB) della modifica effettuata; gli utenti che, selezionando l’apposita opzione, avranno abilitato la sottoscrizione saranno in grado di ricevere in maniera immediata la notifica degli avvenuti aggiornamenti. 8. Una volta completato il listino in via definitiva, il responsabile dell’area marketing dovrà pubblicare il documento redatto nel workspace “Listino Primavera – Estate 2009”, in modo tale che i rappresentanti potranno prenderne visione.
27
Conclusioni Alla luce di quanto esposto, riteniamo che sarebbe molto utile un integrazione nativa all’interno dei BPMS di software di collaborazione e condivisione della conoscenza come i CMS. Nessun prodotto software tra quelli da noi provati ha tale caratteristica, a nostro parere molto importante vista la sempre maggiore diffusione di attività dislocate geograficamente, con persone che lavorano nello stesso processo ma in luoghi differenti, con la necessità di collaborare in maniera efficiente e rapida.
28