SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Grazie per l'attenzione.




Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5
                                                                        19
Cagliari, 25/05/2007

Contenu connexe

Similaire à Building a complete SOA application with NetBeans 5.5

Web 2.0: le sfide per le moderne dot-com
Web 2.0: le sfide per le moderne dot-comWeb 2.0: le sfide per le moderne dot-com
Web 2.0: le sfide per le moderne dot-comEmanuele Della Valle
 
Web 2.0 (Internal presentation)
Web 2.0 (Internal presentation)Web 2.0 (Internal presentation)
Web 2.0 (Internal presentation)Andrea Pesoli
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Whymca
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDLuca Masini
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio OnlineDavide Benvegnù
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineDavide Benvegnù
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webLuca Milan
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2Bkino2k
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSopencityplatform
 
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAX
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAXProgettazione e sviluppo di applicazioni web di nuova generazione con AJAX
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAXLorenzo Cavina
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Andrea Dottor
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailStefano Ottaviani
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Codemotion
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006Emanuele Della Valle
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDaniele Mondello
 
Sharepoint 2010 JQuery
Sharepoint 2010  JQuerySharepoint 2010  JQuery
Sharepoint 2010 JQueryDecatec
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance ImprovementsMichele Aponte
 

Similaire à Building a complete SOA application with NetBeans 5.5 (20)

Web 2.0: le sfide per le moderne dot-com
Web 2.0: le sfide per le moderne dot-comWeb 2.0: le sfide per le moderne dot-com
Web 2.0: le sfide per le moderne dot-com
 
Ibm bluemix r pozzi
Ibm bluemix r pozziIbm bluemix r pozzi
Ibm bluemix r pozzi
 
Web 2.0 (Internal presentation)
Web 2.0 (Internal presentation)Web 2.0 (Internal presentation)
Web 2.0 (Internal presentation)
 
Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini Sviluppo di servizi REST per Android - Luca Masini
Sviluppo di servizi REST per Android - Luca Masini
 
SVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROIDSVILUPPO DI SERVIZI REST PER ANDROID
SVILUPPO DI SERVIZI REST PER ANDROID
 
Integrazione con Visual Studio Online
Integrazione con Visual Studio OnlineIntegrazione con Visual Studio Online
Integrazione con Visual Studio Online
 
SOA wonderful World
SOA wonderful WorldSOA wonderful World
SOA wonderful World
 
Spcoop.ver 1.4
Spcoop.ver 1.4Spcoop.ver 1.4
Spcoop.ver 1.4
 
Webcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio OnlineWebcast - Introduzione a Visual Studio Online
Webcast - Introduzione a Visual Studio Online
 
AngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni webAngularJS – Reinventare le applicazioni web
AngularJS – Reinventare le applicazioni web
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
 
OCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaSOCP-Architettura e caratteristiche della PaaS
OCP-Architettura e caratteristiche della PaaS
 
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAX
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAXProgettazione e sviluppo di applicazioni web di nuova generazione con AJAX
Progettazione e sviluppo di applicazioni web di nuova generazione con AJAX
 
Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0Cosa c'è di nuovo in asp.net core 2 0
Cosa c'è di nuovo in asp.net core 2 0
 
Sviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRailSviluppo Web Agile Con MonoRail
Sviluppo Web Agile Con MonoRail
 
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
 
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
SWE-ET: la soluzione Italiana alla Semantic Web Service Challenge 2006
 
Designing with microservices - Daniele Mondello
Designing with microservices - Daniele MondelloDesigning with microservices - Daniele Mondello
Designing with microservices - Daniele Mondello
 
Sharepoint 2010 JQuery
Sharepoint 2010  JQuerySharepoint 2010  JQuery
Sharepoint 2010 JQuery
 
Angular in produzione: Best Practices e Performance Improvements
Angular in produzione:Best Practices e Performance ImprovementsAngular in produzione:Best Practices e Performance Improvements
Angular in produzione: Best Practices e Performance Improvements
 

Plus de Antonio Pintus

Internet of Things, a che punto siamo?
Internet of Things, a che punto siamo?Internet of Things, a che punto siamo?
Internet of Things, a che punto siamo?Antonio Pintus
 
Humanizing the Internet of Things
Humanizing the Internet of ThingsHumanizing the Internet of Things
Humanizing the Internet of ThingsAntonio Pintus
 
Introduzione all'Internet of Things
Introduzione all'Internet of ThingsIntroduzione all'Internet of Things
Introduzione all'Internet of ThingsAntonio Pintus
 
Paraimpu @ Tiscali Open Campus
Paraimpu @ Tiscali Open CampusParaimpu @ Tiscali Open Campus
Paraimpu @ Tiscali Open CampusAntonio Pintus
 
Internet of Things & Paraimpu
Internet of Things & ParaimpuInternet of Things & Paraimpu
Internet of Things & ParaimpuAntonio Pintus
 
Paraimpu @ World Wide Rome
Paraimpu @ World Wide RomeParaimpu @ World Wide Rome
Paraimpu @ World Wide RomeAntonio Pintus
 
Paraimpu PechaKucha Night Cagliari #02
Paraimpu PechaKucha Night Cagliari #02Paraimpu PechaKucha Night Cagliari #02
Paraimpu PechaKucha Night Cagliari #02Antonio Pintus
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewAntonio Pintus
 
Paraimpu: a social tool for the Web of Things @ WoT2011
Paraimpu: a social tool for the Web of Things @ WoT2011Paraimpu: a social tool for the Web of Things @ WoT2011
Paraimpu: a social tool for the Web of Things @ WoT2011Antonio Pintus
 
Paraimpu: a social tool for the Web of Things
Paraimpu: a social tool for the Web of ThingsParaimpu: a social tool for the Web of Things
Paraimpu: a social tool for the Web of ThingsAntonio Pintus
 
Paraimpu: un social tool per il Web of Things
Paraimpu: un social tool per il Web of ThingsParaimpu: un social tool per il Web of Things
Paraimpu: un social tool per il Web of ThingsAntonio Pintus
 
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)Antonio Pintus
 
Connecting Smart Things through Web services Orchestrations
Connecting Smart Things through Web services OrchestrationsConnecting Smart Things through Web services Orchestrations
Connecting Smart Things through Web services OrchestrationsAntonio Pintus
 

Plus de Antonio Pintus (15)

Internet of Things, a che punto siamo?
Internet of Things, a che punto siamo?Internet of Things, a che punto siamo?
Internet of Things, a che punto siamo?
 
Humanizing the Internet of Things
Humanizing the Internet of ThingsHumanizing the Internet of Things
Humanizing the Internet of Things
 
Introduzione all'Internet of Things
Introduzione all'Internet of ThingsIntroduzione all'Internet of Things
Introduzione all'Internet of Things
 
Paraimpu @ Tiscali Open Campus
Paraimpu @ Tiscali Open CampusParaimpu @ Tiscali Open Campus
Paraimpu @ Tiscali Open Campus
 
Internet of Things & Paraimpu
Internet of Things & ParaimpuInternet of Things & Paraimpu
Internet of Things & Paraimpu
 
Paraimpu @ WWW 2012
Paraimpu @ WWW 2012Paraimpu @ WWW 2012
Paraimpu @ WWW 2012
 
Paraimpu @ World Wide Rome
Paraimpu @ World Wide RomeParaimpu @ World Wide Rome
Paraimpu @ World Wide Rome
 
Paraimpu PechaKucha Night Cagliari #02
Paraimpu PechaKucha Night Cagliari #02Paraimpu PechaKucha Night Cagliari #02
Paraimpu PechaKucha Night Cagliari #02
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
 
Paraimpu: a social tool for the Web of Things @ WoT2011
Paraimpu: a social tool for the Web of Things @ WoT2011Paraimpu: a social tool for the Web of Things @ WoT2011
Paraimpu: a social tool for the Web of Things @ WoT2011
 
Paraimpu: a social tool for the Web of Things
Paraimpu: a social tool for the Web of ThingsParaimpu: a social tool for the Web of Things
Paraimpu: a social tool for the Web of Things
 
Paraimpu: un social tool per il Web of Things
Paraimpu: un social tool per il Web of ThingsParaimpu: un social tool per il Web of Things
Paraimpu: un social tool per il Web of Things
 
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)
Un mare di oggetti in comunicazione tra loro (c'era una volta il Web)
 
Connecting Smart Things through Web services Orchestrations
Connecting Smart Things through Web services OrchestrationsConnecting Smart Things through Web services Orchestrations
Connecting Smart Things through Web services Orchestrations
 
Parliamo di SOA
Parliamo di SOAParliamo di SOA
Parliamo di SOA
 

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
  • 19. Grazie per l'attenzione. Antonio Pintus, Building a Complete SOA Application with NetBeans 5.5 19 Cagliari, 25/05/2007