Click here to load reader

BPM Standards

  • View
    4.694

  • Download
    4

Embed Size (px)

DESCRIPTION

Una rassegna degli standard BPM

Text of BPM Standards

  • 1. Strumenti per la gestione dei processi BPEL e BPMN Michele Malgaretto2 Aprile 2009

2. BPEL Che cos'? BPEL( Business Process Execution Language ) un meta linguaggio basato su XMLA cosa serve? - Permette l'Orchestrazione di Servizi. - Permette di crearenuovi Services (pi complessi) componendonealtri esistenti Dove lo si usa? BPELtrova la sua naturale collocazione in architetture di tipoSOA , cio in architetture basata su Servizi (Web Services). E' standardizzato dal 2003 da OASIS L'ultima versione la 2.0 3. BPEL e SOA Un'architettura SOA (Service Oriented Architetture) un'architettura software basata su Web Services, che utilizza fondamentalmente tre standard:

  • WSDL( un linguaggi basato su XML necessario per descrivere le interfacce pubbliche dei Web Services )
  • UDDI( un linguaggio basato su XML che contiene i riferimenti (fra cui gli indirizzi Web) dei Web service pubblicati dal Service Provider)
  • SOAP( il protocollo per l'invio e la ricezione dei messaggi )

Ruoli in SOA 4. BPEL

  • Come avviene l'orchestrazione?
  • L'Orchestrazione dei servizi avviene per mezzo delle cos note Activities che possono essere
  • SEMPLICI
  • STRUTTURATE

5. BPEL Le Activities Le Activities

  • SEMPLICI
  • Invoke
  • Receive & Reply
  • Assign
  • Throw
  • Wait
  • Empty
  • Exit
  • Re-Throw
  • STRUTTURATE
  • Sequenziale (Sequence)
  • Condizionale (if)
  • Ripetitiva (while,repeat until,for each)
  • Selettiva (pick)
  • Parallelizzabile (flow)

6. BPEL Le Activities - Semplici Invoke usata per richiamare il Web Services offerto dal Service Provider (la richiesta pu essere request-response o one-way) < invokepartnerLink="ncname"// riferimenti WSDL portType="qname"// riferimenti WSDL operation="ncname"// funzione da richiamare inputVariable="ncname" // nelle chiamate asincrone specificatasolamente la variabile in input. outputVariable="ncname">// per le chiamate sincrone invoke > 7. BPEL Le Activities - Semplici Receive & Reply Rappresenta lactivity di ingresso del processo. Pi precisamente, rappresenta la ricezione di un messaggio. Con receive si pu decidere se, alla ricezione di un nuovo messaggio, si debba creare unanuova istanzadel processo, oppure se si sta semplicemente ricevendo un messaggio: questa differenziazione utile in caso di chiamate a web service orchestrati da BPEL, in quanto evita di creare nuove istanze ogni volta che viene restituita da essi la risposta della loro elaborazione al processo stesso. Reply usata per inviare una risposta dopo una receive. < replypartnerLink="ncname" portType="qname" operation="ncname" variable="ncname" faultName="qname"> reply > 8. BPEL Le Activities - Semplici Throw le eccezioni Definisce un messaggio di errore. < throwfaultName="qname"faultVariable="ncname" Wait Sospende il processo per un determinato periodo di tempo o fino a quando non si verifica un determinato evento. < wait(for="duration-expr" | until="deadline-expr") />(es. deadline-expr = 2004-12-31T10:00+1:00) 9. BPEL Le Activities - Semplici Empty Questa tipologia di Activities utile quando c' la necessit di non fare nulla, per esempio quando un errore necessita di essere catturato e sopresso. < empty/>Assign Lattivit di assign permette di aggiornare i valori delle variabili, quindi permette di copiare dati di tipo compatibile da una variabile ad un'altra . Exit Termina il processo immediatamente X 100 10. BPEL Le Activities - Strutturate Sequenziale L'attivitiescontiene una o piattivitche sono tra di lorosequenzialia secondadell'ordinecon cui sono scritte all'interno del tag. L'activities sequence finisce quando l'ultima attivit completata. ... ... ... ... 11. BPEL Le Activities - Strutturate Condizionale if L'attivities funziona proprio come un costrutto funzionale di un qualsiasi linguaggio di programmazione e comprende leopzioni , e . < ifstandard-attributes> ... activity activity activity 12. BPEL Le Activities - Strutturate Ripetitiva while , L'attivities permette di ripetere l'esecuzione di un'attivit . < whilestandard-attributes> ... activity while > < repeatUntilstandard-attributes> activity ... repeatUntil > 13. BPEL Le Activities - Strutturate pick L'activity aspetta l'occorenza esatta di un eventoper cominciare l'esecuzione delle activities. (un esempio di evento potrebbe essereonMessageche molto simile al funzionamento direceive ) < onMessagepartnerLink="client" portType="client:BPELProcess" operation="initiate" variable="OnMessage_initiate_InputVariable"> 14. BPEL Le Activities - Strutturate flow L'activity l'attivit che permette la parallelizzazione delle attivit. Cio esegue le attivit al suo interno in parallelo. Termina solamente quando tutte le attivit sono completate. < flow > flow > 15. BPEL Le Activities - Strutturate forEach L'activity eseguir il contenuto di N+1 volte dove N equivale al meno . (se start > final scope activity non viene eseguita e termina). standard-elements < startCounterValueexpressionLanguage="anyURI"?> unsigned-integer-expression startCounterValue > < finalCounterValueexpressionLanguage="anyURI"?> unsigned-integer-expression finalCounterValue > ... ... 16. BPEL Visione finale 17. BPMN BPMN uninsiemedispecifiche , introdotte dalBPMI(Business Process Management Initiative) chedefiniscono la notazionestandard per la modellazione dei processi. La caratteristica fondamentale di BPMN che ha uniformato le specifiche di modellazione dei work flow per i processi. Attualmente alla versione 1.2 http://www.bpmn.org 18. BPMN Ecco un esempio di Work Flow conforme alle specifiche BPMN 19. BPMN

  • BPMN quindi essendo una notazione ha diviso i vari elementi in 4 categorie
  • Flow Objects
  • Connecting Objects
  • Swimlanes
  • Artifacts

20. BPMN Flow Objects EVENTI L'evento rappresentato da un cerchio ed qualcosa che "Accade" nel corso di un processo. QuestiEventi influenzano il flusso naturaledel processo e di solito hanno una causa (trigger) o un impatto (result). La prima notazione indica lo start del processo, la seconda un evento intermedio (di solito si usa indicare il trigger all'interno) e il terzo indica la fine del processo. ACTIVITIES L'attivit rappresentata da un rettangolo con angoli arrotondati con al centro un termine generico che indica il lavoro che svolge. L'attivit pu essere atomica o non atomica (composti). L'attivit non atomica comprende un Sub-Processo e viene indicata con un segno nella parte bassa del rettangolo DECISIONALI Un gateway rappresentato da un rombo, ed usato per controllare la divergenza e la convergenza di Sequenze Flow. Pertanto sar utile per rappresentare ilbiforcare, la fusione e giunzione di sentieri .All'interno viene specificato il tipo di controllo. 21. BPMN Connecting Objects SEQUENCE FLOW Una sequenza di flusso rappresentato da una freccia solida che usata per mostrare l'ordine (la sequenza), con cui le attivit saranno eseguite nel processo. MESSAGE FLOW Un messaggio di flusso rappresentato da una freccia tratteggiata che usata per mostrare il flusso di messaggi tra due Processi. ASSOCIATION L'associazione rappresentata da una freccia punteggiata, ed usata per associare dati, testi, e artefatti, con il flusso di oggetti. 22. BPMN Swimlanes POOL Una piscina rappresenta unpartecipantein un ocesso LANES Un Lane un sub-partizione all'interno di un Piscina e si estender l'intero lunghezza della piscina, sia in verticale che o in senso orizzontale. Sono usate per organizzare e classificare le attivit. 23. BPMN Artifacts DATA OBJECT Data Objects sono un meccanismo per mostrare quali dati sono necessari o sono prodotti da un'attivit. Essi sono collegati alle attivit attraverso Association. ANNOTAZIONI di TESTO Le annotazioni sono un meccanismo che aiutano il modellatore a fornire ulteriori informazioni al lettore di un diagramma BPMN. GRUPPI Permette di creare dei raggruppamenti logici 24. BPMN ESEMPIO 25. BPMN & XPDL Fino ad ora abbiamo visto qual' la notazione per modellare Work Flow di processi, ma a cosa ci serve? Ci serve per avere un linguaggio comune per esprimere i Work Flow... - ma come viene gestito questo standard a livello software? 26. BPMN & XPDL Inizialmente ogni produttore di software per BPM implementava BPMN con soluzione proprietarie. Mancava uno standard In questo senso si mosso il WfMC (Work Flow Management Coalition) che ha creato XPDL, giunto alla versione 2.1. (http://www.wfmc.org) 27. XPDL Quindi XPDL un linguaggio STANDARD basato su XML che permette lostoreddei Work Flow BPMN. 28. XPDL Qui di seguito la rappresentazione grafica del segmento di codice della slide precedente. 29. XPDL BPMN Esempio di rappresentazione di un elemento Events (BPMN) in XPDL v2.1 dove vengono introdotte anche le coordinate per il posizionamento degli elementi in modo da garantire anche una visualizzazione standard indipendentemente dal tools. 30. XPDL BPMN In questo caso invece viene rappresentato un oggetto di tipo Gateway che permette di diversificare la rotta del flusso in seguito per esempio ad una condizione. ... 31. XPDL Vediamo ora come vengono rappresentati i due elementi in modalit grafica. 32. XPDL Alcuni software per il BPM -TIBCO (opensource) -INTALIO (opensource) -eClarus (propietario) 33. Tools per il BPM - TIBCO TIBCO TIBCOazienda leader nello sviluppo di soluzioni software per il BPM ha implementato iProcess Suite, che un insieme di strumenti che ti permettono di automatizzare e ottimizzare ogni tipo di processo. Si basa su architetture di tipo SOA quindi basate su Servizi L'ambiente modeller basato su Eclipse opensource. 34. Tools per il BPM - TIBCO 35. Tools per il BPM - TIBCO 36. Tools per il BPM - INTALIO INTALIO leader nella produzione di soluzioni software per il BPM opensource. Mette a disposizione pi pacchetti software per il BPM - Product Edition - Business Edition - Developr Edition - Community Edition - Enterprise Edition NON SUPPORTA L'XPDL. USA BPMN 37. Tools per il BPM INTALIO 38. Tools per il BPM eClarus Supporta XPDL, BPEL, BPMN e SOA Permette il passaggio da XPDL a BPEL esi basa su Eclipse. Non OpenSource http://www.eclarus.com