• Non ci sono risultati.

Indice Riassunto analitico

N/A
N/A
Protected

Academic year: 2021

Condividi "Indice Riassunto analitico"

Copied!
6
0
0

Testo completo

(1)

Indice

Riassunto analitico... 4

1 Introduzione...11

1.1 Scopo del progetto...11

1.2 Contenuto del documento... 13

1.3 Convenzioni e notazioni... 13

2 Le tecnologie... 14

2.1 Java Message Service...14

2.1.1 Il modello... 14

2.1.2 Gli attori... 15

2.1.3 Il package javax.jms...16

2.1.4 Le applicazioni...20

2.1.4.1 Comunicazione tra processi Java... 20

2.1.4.2 SOAP-over-JMS...22

2.1.4.3 Integrazione con altri prodotti... 23

2.1.5 Gli strumenti... 24

2.1.5.1 Sun Java System Application Server 8...24

2.2 Business Process Execution Language... 25

2.2.1 Il linguaggio... 27

2.2.1.1 Struttura...27

2.2.1.1.1 Integrazione con il WSDL...28

2.2.1.2 Costrutti principali...33

2.2.1.2.1 Interazione con servizi web... 33

2.2.1.2.2 Variabili...34

2.2.1.2.3 Correlazione... 36

2.2.1.2.4 Visibilità, gestione degli errori e compensazione...39

2.2.1.2.5 Controllo di flusso... 42

2.2.2 Le applicazioni...44

2.2.2.1 Sviluppo di applicazioni ad hoc in ambiente distribuito... 44

2.2.2.2 Integrazione di sistemi legacy... 44

2.2.2.3 Evoluzione di processi di business da servizi esistenti... 45

2.2.3 Limiti attuali e sviluppi futuri... 46

2.2.3.1 Attributi ridondanti ed attributi mancanti...46

2.2.3.2 Web service asincroni... 48

2.2.3.3 Integrazione con altri standard W3C...53

2.2.4 Gli strumenti... 55

2.2.4.1 GlobalBiz Process Engine...55

2.2.4.2 Oracle BPEL Process Manager... 56

2.2.4.3 ActiveBPEL... 56

(2)

2.3.3 Le applicazioni...62

2.3.3.1 Client con connessione diretta...62

2.3.3.2 Connection pooling... 63 2.3.3.3 Classi proxy...65 2.3.3.4 Applicazioni server... 68 2.3.4 Sviluppi futuri... 69 3 Il progetto...70 3.1 Analisi funzionale... 70

3.2 Analisi non funzionale... 71

3.3 Architettura...72

3.3.1 Distribuzione dei moduli del sistema...73

3.3.2 Formato dei dati... 74

3.4 Implementazione...76 3.4.1 Il modulo IBRA... 76 3.4.1.1 HttpController... 77 3.4.1.2 Pop3Controller... 80 3.4.1.3 SmsController...84 3.4.1.4 RmiController...90 3.4.1.5 PrepareRequestDispatcher... 93 3.4.1.6 PrepareRequestModule... 100 3.4.2 I web service... 103 3.4.2.1 Il documento WSDL... 103 3.4.2.2 CompletePurchaseOrder...113 3.4.2.3 InsertPurchaseOrderController...115 3.4.2.4 InsertPurchaseOrder... 117 3.4.2.5 SendResponse...121 3.4.3 Il documento BPEL...123 3.4.4 L'interfaccia web... 131 3.4.5 Esempi d'uso... 133

3.4.5.1 Successo con invio via web e risposta via posta elettronica... 133

3.4.5.2 Fallimento con invio via SMS...138

4 Conclusioni...140

4.1 Sviluppi futuri di Zlatan...140

4.2 Considerazioni finali... 141

Appendice A – Apache Axis... 142

Appendice B – Installazione e configurazione di Zlatan...144

Bibliografia... 147

Note sul copyright...149

(3)

Indice delle figure

Figura 1: interazione tra attori nel modello SOA... 11

Figura 2: rappresentazione grafica del pattern JMS PTP... 14

Figura 3: rappresentazione grafica del pattern JMS PUB/SUB...15

Figura 4: class diagram di JMS con interfaccia base Connection... 16

Figura 5: class diagram di JMS con interfaccia base Destination... 16

Figura 6: class diagram di JMS con interfaccia base Session...16

Figura 7: class diagram di JMS con interfaccia base ConnectionFactory...16

Figura 8: esempio di composizione dei processi di un server distribuito... 20

Figura 9: schema di funzionamento del server distribuito...21

Figura 10: i modelli di utilizzo di SOAP-over-JMS proposti da Axis... 22

Figura 11: il pannello di amministrazione di SJSAS8...24

Figura 12: rappresentazione grafica di un flusso di processo BPEL... 42

Figura 13: esempi di SVG e di JPEG generati dal PE per lo stesso processo... 55

Figura 14: pila delle interfacce SAP-Java... 58

Figura 15: pila delle interfacce SAP-Java modificata... 65

Figura 16: server JCo come proxy tra R/3 ed un EIS legacy...68

Figura 17: schema funzionale del sistema Zlatan... 70

Figura 18: architettura generale del sistema... 72

Figura 19: icone dei moduli nella system tray ed esempio di due console... 76

Figura 20: class diagram di HttpController... 77

Figura 21: class diagram di SmsControllerThread... 85

Figura 22: class diagram di RmiController... 90

Figura 23: class diagram del dispatcher...93

Figura 24: messaggi prodotti allo startup dal dispatcher e da un modulo...98

Figura 25: messaggi prodotti allo shutdown dal dispatcher e da un modulo ...99

Figura 26: class diagram di CompletePurchaseOrder... 113

Figura 27: menu dell'interfaccia grafica di Zlatan...131

Figura 28: pagina per l'inserimento di un ordine d'acquisto via IBRA...131

Figura 29: pagina per l'invio di un messaggio SOAP diretto all'engine BPEL...132

Figura 30: risultato dell'interrogazione sullo stato di un ordine...132

Figura 31: pagina per la gestione del database di CompletePurchaseOrder... 132

Figura 32: dati inseriti dal partner 1177 all'invio dell'ordine...133

Figura 33: risposta fornita dalla web application al partner 1177... 133

Figura 34: messaggi generati dal dispatcher alla ricezione dell'ordine dal partner 1177... 134

Figura 35: messaggi generati da un modulo alla ricezione dell'ordine dal dispatcher... 134

Figura 36: lista dei processi recenti mostrata dal PE all'avvio del nuovo processo...135

Figura 37: lista dei processi recenti mostrata dal PE dopo la chiamata a InsertPurchaseOrder... 136

Figura 38: lista dei processi recenti mostrata dal PE dopo la fine del processo... 136

(4)
(5)

Indice dei listati

Listato 1: codice di JMSHelloWorld...19

Listato 2: processo BPEL echoProcess... 27

Listato 3: definizioni WSDL per il processo echoProcess...28

Listato 4: struttura di base di un documento WSDL... 30

Listato 5: utilizzo dei <partnerLink> in BPEL... 31

Listato 6: definizione di proprietà in BPEL...32

Listato 7: utilizzo di <pick> in BPEL...34

Listato 8: definizione di variabili in BPEL...35

Listato 9: assegnazione di valori alle variabili BPEL...35

Listato 10: definizione ed uso dei correlation set in BPEL... 38

Listato 11: uso di <scope> e meccanismo di gestione dei fault in BPEL...40

Listato 12: esempio di uso di <faultHandlers> internamente ad una <invoke> in BPEL...40

Listato 13: utilizzo della compensazione in BPEL... 41

Listato 14: utilizzo dei costrutti di controllo BPEL...43

Listato 15: risoluzione dell'endpoint in GlobalBiz PE... 47

Listato 16: risoluzione dell'endpoint in ActiveBPEL...47

Listato 17: definizioni WSDL per una chiamata asincrona con callback... 49

Listato 18: invocazione sincrona di un servizio in BPEL...50

Listato 19: invocazione asincrona con callback in BPEL...51

Listato 20: invocazione asincrona con callback e gestione degli errori in BPEL... 52

Listato 21: creazione di una funzione in SAP JCo... 59

Listato 22: parametri di import ed esecuzione di una funzione JCo...60

Listato 23: parametri di export e struttura RETURN in JCo... 60

Listato 24: accesso ai campi di una struttura JCo... 60

Listato 25: accesso diretto ai campi di una struttura JCo... 61

Listato 26: accesso ai campi di una tabella JCo...61

Listato 27: esempio di utilizzo di un client JCo con connessione diretta...62

Listato 28: esempio di utilizzo di un client JCo con pool di connessioni...64

Listato 29: possibile output generato da CompanyCodeConnPool... 64

Listato 30: esempio di classe proxy JCo per CompanyCode... 67

Listato 31: parte dell'output generato dal metodo main() di CompanyCode...67

Listato 32: schema del metodo hadleRequest() in un server JCo...69

Listato 33: post di esempio per il driver HTTP... 77

Listato 34: codice di HttpServlet... 79

Listato 35: messaggio di posta di esempio per il driver POP3... 80

Listato 36: codice di Pop3Controller... 83

Listato 37: codice di SmsController.SmsControllerThread.run()... 86

Listato 38: codice di MobilePhoneConnection... 89

(6)

Listato 42: codice di RegistrationController...97

Listato 43: codice di PrepareRequestDispatcher...98

Listato 44: codice di PrepareRequestModule... 102

Listato 45: definizione dei namespace nel documento WSDL...103

Listato 46: definizione dei tipi nel documento WSDL... 106

Listato 47: definizioni astratte nel documento WSDL... 108

Listato 48: esempio di definizione di un binding nel documento WSDL...109

Listato 49: definizione dei servizi nel documento WSDL... 110

Listato 50: definizione delle estensioni BPEL nel documento WSDL... 112

Listato 51: codice di CompletePurchaseOrderBindingImpl... 114

Listato 52: codice di InsertPurchaseOrderController... 116

Listato 53: codice di InsertPurchaseOrder... 120

Listato 54: esempio di post HTTP effettuato da SendResponse... 121

Listato 55: esempio di messaggio email inviato da SendResponse...121

Listato 56: esempio di messaggio SOAP inviato da SendResponse... 122

Listato 57: definizione dei namespace nel documento BPEL...123

Listato 58: definizione dei partnerLink, delle variabili e dei correlationSet nel documento BPEL... 124

Listato 59: inizio del processo BPEL... 125

Listato 60: gestori di fault del primo scope del processo BPEL... 125

Listato 61: invocazione del primo servizio nel processo BPEL... 126

Listato 62: preparazione della variabile di ingresso del secondo servizio nel processo BPEL... 128

Listato 63: invocazione del secondo servizio nel processo BPEL...129

Listato 64: invocazione del terzo servizio nel processo BPEL... 130

Listato 65: messaggio postato presso HttpController dal partner 1177...133

Listato 66: messaggio SOAP generato dal modulo per l'attivazione del processo BPEL... 135

Listato 67: messaggio SOAP inviato dal PE al servizio CompletePurchaseOrder... 135

Listato 68: risposta fornita al PE da CompletePurchaseOrder per il partner 1177... 136

Listato 69: testo del messaggio SMS inviato dall'utente non registrato... 138

Listato 70: messaggio SOAP inviato dal PE al servizio CompletePurchaseOrder... 139

Listato 71: SOAP fault generato dal servizio CompletePurchaseOrder...139

Riferimenti

Documenti correlati

Identity politics along civilizational lines appears to be linked to the need to map and order along distinct cultural complexes an otherwise bewildering and

Tsakaloyannis eds, The Mediterranean Challenge VI: Spain, Greece and Community Politics, Sussex European Research Centre: University of Sussex Sjursen,H 2002 ‘Why Expand : The

Per questo articolo di primo livello si prevedono 5 giorni per la consegna e viene utilizzato il Punto di Riordino di 3706 pezzi come politica di

Prima che la rilegatura in stile occidentale prendesse piede in Giappone i libri erano cuciti essenzialmente usando cinque metodi. 11-12) venivano realizzati unendo i

The argument of this paper is that many such approaches, which conceive a bond in terms of shared interests, cultural attributes, or shared values and principles, are liable

Hartley, The Foundations o f European Community Law (Clarendon, 3rd. European University Institute. Available Open Access on Cadmus, European University Institute

Based on theoretical framework of the Regional Risk Assessment (RRA) approach, the methodology is applied to the (extensive) irrigated cultivations that cover a large

The three illustrative examples that have been chosen for the purposes of this exploratory report are secrecy as manifested in the rules governing the constitution of the EEAS, the