Building a complete SOA application with NetBeans 5.5
1. Building a Complete SOA Application
L with NetBeans 5.5
o
Antonio Pintus
http://www.pintux.it
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
1
Cagliari, 25/05/2007
2. Chi sono
Antonio Pintus
pintux@pintux.it
http://www.pintux.it
lavoro come Software Engineer presso il CRS4 (oggi
esattamente da 7 anni!)
socio del JUG Sardegna
mi occupo principalmente di applicazioni software distribuite
utilizzando la piattaforma Java
attualmente mi sto occupando di Web Service e Service
Oriented Architecture (SOA), argomenti anche del mio dottorato
in Informatica in corso di svolgimento
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
2
Cagliari, 25/05/2007
3. Sommario
SOA e Web Service Orchestration con BPEL
●
Web Service e SOA in pratica: un esempio con
●
NetBeans 5.5
(quest'ultima parte è relativa ad un mio tutorial reperibile sul
sito di NetBeans Community Docs, all'URL:
http://wiki.netbeans.org/wiki/view/ACompleteSOAAppNetbea
ns5.5)
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
3
Cagliari, 25/05/2007
4. Sistemi Service-Oriented
I sistemi Service-Oriented non costituiscono un concetto
●
nuovo
Possono essere visti come Service-Oriented, per esempio, le
●
tecnologie COM, CORBA, RMI,...
Un problema basilare di queste è che esse richiedono
●
particolari protocolli di comunicazione
Non sono molto adatte per il Web
●
Nuova vita dei sistemi Service-Oriented grazie
●
all'introduzione delle tecnologie dei Web Service
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
4
Cagliari, 25/05/2007
5. SOA: Service-Oriented Architecture
Concetto nato principalmente per l’integrazione di sistemi
●
eterogenei in ambiti Business-to-Business (B2B). SOA si basa
sul concetto di:
– Servizio:
● particolare unità di lavoro (o capability) eseguita
da un fornitore di servizi
fruibile da un consumatore del servizio
●
Fornitore e consumatore: entrambi applicazioni
●
software autonome
Maggiore livello di astrazione nelle Applicazioni Distribuite
●
Web Services come tecnologia abilitante
●
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
5
Cagliari, 25/05/2007
6. WS Orchestration, BPEL (1)
Sviluppare Web Services esponendo le loro
●
funzionalità non è sufficiente per completare uno
scenario di business
Occorre uno strumento per orchestrare queste
●
funzionalità seguendo un ordine preciso di
esecuzione e flusso di messaggi
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
6
Cagliari, 25/05/2007
7. WS Orchestration, BPEL (2)
I Web Service sono formalmente descritti mediante una
●
Service Description (WSDL)
Ogni operazione può essere vista come una unità di
●
lavoro “atomica”
BPEL (Business Process Execution Language):
●
Formato basato su XML
–
Fornisce uno strumento per l'orchestrazione di
–
servizi basata su formati standard
Un documento BPEL descrive, essenzialmente, una
–
interazione tra più Web Service basata su:
transazioni, mantenimento dello stato, scambio di
messaggi (anche asincrono)
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
7
Cagliari, 25/05/2007
8. WS Orchestration, BPEL (3)
BPEL definisce:
●
una serie di partnerLinks che rappresentano i singoli
●
Web Service
Variabili
●
CorrelationSets
●
...
●
Flusso di attività proprie del processo di business
●
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
8
Cagliari, 25/05/2007
9. WS Orchestration, BPEL (4)
Activities e costrutti principali:
●
<sequence>
<invoke> ●
●
<receive> <while>
● ●
<reply>
●
<pick>
●
<assign>
●
<flow>
●
<throw>
●
<scope>
●
<wait>
●
<compensate>
<empty> ●
●
<switch>
●
<link>
●
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
9
Cagliari, 25/05/2007
10. SOA e WS Orchestration
Mediante il paradigma SOA si è in grado di:
●
Costruire applicazioni mediante composizione e
–
orchestrazione di Web Service
Utilizzare un linguaggio di orchestration, per es.
–
BPEL (anche mediante tool di composizione visuale)
L'orchestration definita nel documento BPEL viene
●
eseguita da un BPEL Engine
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
10
Cagliari, 25/05/2007
11. Un esempio SOA
Web Service Web Service
Web Service
Web Service
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
11
Cagliari, 25/05/2007
12. Strumenti
Java EE 5
●
● API JAX-WS 2.0 per la creazione di Web Service
● Glassfish (Sun Java System Application Server) come
Application Server
● Application Server Open Source di riferimento per
Java EE 5
● Engine di esecuzione processi BPEL e SOA
Netbeans 5.5
●
– Ottimo ambiente di sviluppo Java general-purpose
– Con l'Enterprise Pack:
● Superbo supporto SOA ed editor visuale per BPEL
● Integrazione con l'Application Server
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
12
Cagliari, 25/05/2007
13. Web Service
Per l'applicazione di esempio servono tre Web Service:
●
AccountManagerWS
–
si occupa del controllo degli utenti.
●
Operation utile: checkCustomer(customerID), verifica se
●
il codice utente è valido e restituisce un booleano
StockManagerWS
–
si occupa della gestione dei prodotti in magazzino
●
Operation utile: checkStock(stockID), verifica se il
●
prodotto indicato è disponibile o ordinabile e restituisce un
booleano
OrderManagerWS
–
gestisce gli ordini
●
Operation utile: processOrder(userID, stockID), crea
●
l'ordine e restituisce un identificatore univoco d'ordine
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
13
Cagliari, 25/05/2007
14. FLASH DEMO
NetBeans 5.5 + Enterprise Pack
●
Implementazione dei Web Service
–
http://wiki.netbeans.org/wiki/attach/ACompleteSOAAppNetbeans5.5/Web
Services-creation.htm
Definizione dei tipi di dati mediante XML-Schema e definizione
–
del WSDL globale dell'applicazione SOA risultante
http://wiki.netbeans.org/wiki/attach/ACompleteSOAAppNetbeans5.5/Orc
–
hestration-Schema-WSDL.htm
WS Orchestration con BPEL
–
http://wiki.netbeans.org/wiki/attach/ACompleteSOAAppNetbeans5.5/Orc
–
hestration-BPEL.htm
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
14
Cagliari, 25/05/2007
15. Riassumendo...
Per l'applicazione SOA d'esempio, sono stati
●
creati:
I Web Service
●
Una loro orchestration mediante BPEL
●
Si è pubblicata l'applicazione SOA ottenuta come Web
●
Service definendo in principio un WSDL
Si è testata (in maniera molto semplice) l'applicazione
●
ottenuta
Cosa manca? ...Un client! L'applicazione viene esposta
●
come un Web Service e quindi è possibile costruire un
suo client mediante qualunque framework o linguaggio.
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
15
Cagliari, 25/05/2007
16. Conclusioni
Web Services e SOA aggiungono un nuovo paradigma per la
●
creazione di applicazioni software distribuite
Questo tenendo conto di:
●
Sistemi eterogenei (piattaforme, linguaggi di
●
programmazione)
Interoperabilità
●
Basso livello di accoppiamento tra le parti coinvolte
●
Orchestration di servizi
●
Web Services e SOA trovano nel linguaggio Java un prezioso
●
“alleato”, infatti:
Java SE 6 e Java EE 5 introducono un grande supporto
●
“chiavi in mano” per Web Services e SOA
Presenza di validissimi framework di terze parti
●
Documentazione in abbondanza e di qualità
●
Potenza della community di sviluppatori
●
Ottimi Tool di sviluppo, in costante miglioramento, NB6!
●
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
16
Cagliari, 25/05/2007
17. Riferimenti
Java SE 6, http://java.sun.com/javase/reference/index.jsp
●
Java EE 5, http://java.sun.com/javaee/reference/
●
Netbeans IDE, http://www.netbeans.org/
●
NetBeans Community Docs,
●
http://wiki.netbeans.org/wiki/view/CommunityDocs
Project Glassfish, https://glassfish.dev.java.net/
●
OpenESB, http://java.sun.com/integration/openesb2_0/
●
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
17
Cagliari, 25/05/2007
18. Licenza
Copyright (c) 2007 Antonio Pintus.
Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU
Free Documentation License, Version 1.2 or any
later version published by the Free Software
Foundation; with no Invariant Sections, no Front-
Cover Texts, and no Back-Cover Texts. A copy of
the license is included in the section entitled quot;GNU
Free Documentation Licensequot;.
http://www.gnu.org/copyleft/fdl.html
Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
18
Cagliari, 25/05/2007