• Non ci sono risultati.

Reingegnerizzazione in ottica SOA della piattaforma software di Poste Italiane di supporto ai processi di spedizione e consegna

N/A
N/A
Protected

Academic year: 2021

Condividi "Reingegnerizzazione in ottica SOA della piattaforma software di Poste Italiane di supporto ai processi di spedizione e consegna"

Copied!
96
0
0

Testo completo

(1)

 

 

 

 

 

 

 

   

 

A  mio  nonno  

(2)

Indice  

1   Introduzione  ...  7  

2   Lo  stato  dell’arte  ...  8  

2.1

 

Le  architetture  orientate  ai  servizi  ...  9

 

2.1.1

 

I  servizi  ...  10

 

2.1.2

 

Funzionamento  ...  11

 

2.1.3

 

Campi  d’applicazione  ...  12

 

2.1.4

 

Considerazioni  finali  ...  14

 

2.2

 

I  Web  Service  ...  15

 

2.2.1

 

SOAP  ...  16

 

2.2.1.1

 

Struttura  di  un  messaggio  SOAP  ...  16

 

2.2.1.2

 

SOAP  e  allegati  ...  18

 

2.2.2

 

WSDL  ...  19

 

2.2.2.1

 

Struttura  di  un  WSDL  ...  19

 

2.2.2.2

 

Tipologia  di  un  servizio  ...  20

 

2.2.3

 

UDDI  ...  22

 

2.2.3.1

 

Struttura  registro  UDDI  ...  22

 

2.2.4

 

Modello  di  funzionamento  ...  24

 

2.2.5

 

Considerazioni  finali  ...  26

 

3   Un  caso  di  studio:  Poste  Italiane  ...  28  

3.1

 

Background,  scope  ed  obiettivi  ...  28

 

3.2

 

Analisi  As-­‐Is  ...  29

 

3.2.1

 

Architettura  As-­‐Is  ...  30

 

3.2.2

 

Macro  processo  ...  31

 

3.2.3

 

Accesso  al  portale  ...  33

 

3.2.4

 

OdA  ...  34

 

3.2.4.1

 

Struttura  file  OdA  ...  35

 

3.2.5

 

OdV  ...  36

 

3.2.5.1

 

Struttura  file  OdV  ...  39

 

3.2.6

 

Allineamento  ...  41

 

3.2.7

 

Consegna  e  rientro  ...  43

 

(3)

3.2.9

 

Gestione  documentazione  ...  45

 

3.2.10

 

Dettaglio  dei  dati  inerenti  ai  processi  ...  47

 

3.3

 

Considerazioni  finali  ...  51

 

4   Progettazione  architettura  To-­‐Be  ...  52  

4.1

 

Raccolta  requisiti  ...  52

 

4.1.1

 

Obiettivi  business  ...  52

 

4.1.2

 

Obiettivi  tecnici  ...  53

 

4.1.3

 

Requisiti  funzionali  ...  53

 

4.2

 

Architettura  To-­‐Be  ...  58

 

4.2.1

 

Architettura  generale  ...  60

 

4.2.2

 

Architettura  applicativa  ...  63

 

4.2.2.1

 

Presentation  Layer  ...  63

 

4.2.2.2

 

Business  Layer  ...  64

 

4.2.2.3

 

Persistence  Layer  ...  64

 

4.2.3

 

Architettura  esecutiva  ...  66

 

4.3

 

Considerazioni  finali  ...  68

 

5   Simulazione  WFM  ...  70  

5.1

 

Casi  d’uso  ...  71

 

5.2

 

Diagramma  dei  componenti  ...  74

 

5.3

 

Diagramma  delle  classi  ...  75

 

5.3.1

 

WFM  ...  75

 

5.3.2

 

ClientPTI  ...  76

 

5.3.3

 

GA  ...  77

 

5.3.4

 

ClientExt  ...  77

 

5.4

 

Modello  dei  dati  ...  78

 

5.5

 

Diagramma  di  sequenza  ...  80

 

5.6

 

Esempio  di  esecuzione  ...  85

 

6   Conclusioni  e  sviluppi  futuri  ...  90  

7   Bibliografia  ...  94  

 

(4)

Indice delle figure

Figura  1:  Sistema  SOA   ________________________________________________________________  11   Figura  2:  Esempio  di  scenario  SOA  _______________________________________________________  12   Figura  3:  Grid  computing  ______________________________________________________________  13   Figura  4:  Web  Service  Stack  ____________________________________________________________  16   Figura  5:  Struttura  messaggio  SOAP   _____________________________________________________  17   Figura  6:  SOAP  Request   _______________________________________________________________  18   Figura  7:  SOAP  Response  ______________________________________________________________  18   Figura  8:  Esempio  di  documento  WSDL  per  un  Web  Service  ___________________________________  20   Figura  9:  Struttura  del  registro  UDDI  _____________________________________________________  23   Figura  10:  Architettura  SOA  con  Web  Service  ______________________________________________  24   Figura  11:  Web  Service  in  una  rete  aziendale   ______________________________________________  26   Figura  12:  Web  Service  in  un'architettura  SOA  _____________________________________________  27   Figura  13:  Architettura  di  riferimento  ____________________________________________________  30   Figura  14:  Macro  processo  _____________________________________________________________  31   Figura  15:  Accesso  al  portale  ___________________________________________________________  33   Figura  16:  Maschera  OdA  ______________________________________________________________  34   Figura  17:  Processo  OdA  _______________________________________________________________  34   Figura  18:  Maschera  OdV  ______________________________________________________________  36   Figura  19:  Processo  OdV  -­‐  Packaging  interno  -­‐   _____________________________________________  37   Figura  20:  Processo  OdV  -­‐  Packaging  esterno  -­‐  _____________________________________________  38   Figura  21:  Allineamento  _______________________________________________________________  41   Figura  22:  Consegna  e  Rientro  __________________________________________________________  43   Figura  23:  Appuntamenti  ______________________________________________________________  44   Figura  24:  Gestione  documentazione  _____________________________________________________  45   Figura  25:  Maschera  controllo  documenti  _________________________________________________  46   Figura  26:  Maschera  validazione  documenti  “Ok”   __________________________________________  46   Figura  27:  Maschera  validazione  documenti  “Ko”  ___________________________________________  47   Figura  28:  Architettura  WFM-­‐Configuratore  _______________________________________________  59   Figura  29:  Architettura  To-­‐Be  ___________________________________________________________  60   Figura  30:  Cambiamenti  nell’architettura  To-­‐Be  ____________________________________________  61   Figura  31:  Esempio  processo  To-­‐Be  ______________________________________________________  62   Figura  32:  Architettura  applicativa   ______________________________________________________  63   Figura  33:  Diagramma  deployment  ______________________________________________________  65  

(5)

Figura  34:  Architettura  esecutiva  ________________________________________________________  66   Figura  35:  Scenario  utilizzo  WFM  e  Configuratore   __________________________________________  68   Figura  36:  Diagramma  casi  d'uso  ________________________________________________________  71   Figura  37:  Diagramma  dei  Componenti  ___________________________________________________  74   Figura  38:  Diagramma  delle  Classi  "wfm"  _________________________________________________  75   Figura  39:  Diagramma  delle  classi  "ClientPTI"  ______________________________________________  76   Figura  40:  Diagramma  delle  classi  "ga"  ___________________________________________________  77   Figura  41:  Diagramma  delle  classi  "ClientExt"  ______________________________________________  77   Figura  42:  Modello  E/R  database  "PTI"  ___________________________________________________  78   Figura  43:  Diagramma  di  sequenza  ______________________________________________________  80   Figura  44:  Esempio  di  struttura  interna  per  GA  _____________________________________________  83   Figura  45:  Esempio  di  struttura  interna  per  OdA  ____________________________________________  83   Figura  46:  Esempio  di  struttura  interna  per  OdV  ____________________________________________  84   Figura  47:  Registrazione  Cliente  Esterno  __________________________________________________  85   Figura  48:  Richiesta  file  da  elaborare   ____________________________________________________  85   Figura  49:  Mappatura  file  .xsd  __________________________________________________________  86   Figura  50:  Non  disponibilità  file  .xsd   _____________________________________________________  86   Figura  51:  Errori  in  mappatura  del  file  ____________________________________________________  87   Figura  52:  Mappatura  avvenuta   ________________________________________________________  87   Figura  53:  Scelta  funzionalità  ___________________________________________________________  88   Figura  54:  Accesso  al  servizio  respinto  ____________________________________________________  88   Figura  55:  Elaborazione  degli  appuntamenti  _______________________________________________  89   Figura  56:  Verifica  documentazione   _____________________________________________________  89   Figura  57:  Architettura  con  nuovi  sviluppi  _________________________________________________  92   Figura  58:  Benefici  futuri   ______________________________________________________________  93  

(6)

Indice  delle  tabelle  

Tabella  1:  Attori  coinvolti  nei  processi  ____________________________________________________  29   Tabella  2:  Header  file  OdA  _____________________________________________________________  36   Tabella  3:  Body  file  OdA  _______________________________________________________________  36   Tabella  4:  Header  file  OdV  _____________________________________________________________  39   Tabella  5:  Body  file  OdV  _______________________________________________________________  40   Tabella  6:  Informazioni  scambiate  nel  processo  OdA   ________________________________________  48   Tabella  7:  Informazioni  scambiate  nel  processo  OdV   ________________________________________  50   Tabella  8:  Informazioni  scambiate  nel  processo  Gestione  documentazione  _______________________  50   Tabella  9:  Stack  software  WFM  _________________________________________________________  67   Tabella  10:  Benefici  ottenibili  ___________________________________________________________  69   Tabella  11:  Attori  coinvolti  _____________________________________________________________  71   Tabella  12:  Caso  d'uso  "Registrazione"  ___________________________________________________  72   Tabella  13:  Caso  d'uso  "Accesso"  ________________________________________________________  72   Tabella  14:  Caso  d'uso  "Gestione  Flussi"  __________________________________________________  73   Tabella  15:  Caso  d'uso  "Gestione  Appuntamenti"  ___________________________________________  73   Tabella  16:  Attributi  tabella  “Tags”  ______________________________________________________  79   Tabella  17:  Attributi  tabella  “Clienti”  _____________________________________________________  79    

(7)

Introduzione   1  

 

1 Introduzione  

Le   attuali   condizioni   economiche   e   i   rapidi   cambiamenti   del   mercato   tecnologico   globale   richiedono  alle  imprese  di  adattarsi  rapidamente,  portando  ad  una  contestuale  necessità  di   aumentare  la  propria  flessibilità.  Dal  punto  di  vista  informatico,  questi  requisiti  si  traducono   in   una   maggiore   efficienza   operativa   raggiunta,   ad   esempio,   tramite   l’automazione   dei   processi,  ma  soprattutto  grazie  alle  attività  che  puntano  all’integrazione  delle  applicazioni   aziendali  in  modo  da  garantire  che  più  sistemi  di  business  possano  condividere  processi  e   dati.  

Tuttavia,   l'integrazione   di   più   sistemi   può   portare   ad   architetture   complesse   e   fragili   che   possono  essere  molto  costose.  Alcuni  degli  obiettivi  chiave  che  le  organizzazioni  IT  devono   affrontare  in  questo  contesto  sono:  

• Riduzione  dei  tempi  di  commercializzazione  delle  nuove  funzionalità.   • Diminuzione  dei  costi  di  integrazione  e  complessità.  

• Gestione  del  cambiamento  tecnologico.  

• Disponibilità  e  scalabilità  della  piattaforma  software.  

Questa  tesi  è  volta  a  descrivere  le  necessità  di  superamento  dei  problemi  d’integrazione  tra   aziende   eterogenee.   Nei   vari   capitoli   verranno   discusse   queste   problematiche   partendo   dall’inquadramento  del  problema  prima  di  addentrarsi,  nel  capitolo  2,  in  aspetti  più  tecnici.   Negli  altri  capitoli  verrà  presentato  un  caso  di  studio  aziendale  in  cui  si  dimostra  come  la   migrazione  verso  un’architettura  più  flessibile  porti  vantaggi  all’azienda.  In  particolare,  nel   capitolo   3   viene   analizzata   la   situazione   esistente,   nel   capitolo   4   vengono   definiti   gli   obiettivi   da   raggiungere   e   la   proposta   di   una   nuova   architettura   e   nel   capitolo   5   viene   presentata   una   simulazione   per   far   capire   meglio,   da   un   punto   di   vista   implementativo,   esempi   dei   servizi   effettivamente   offerti.   Nel   capitolo   finale   vengono   analizzati   i   benefici   ottenibili,  ma  soprattutto  vengono  anche  indicate  le  aree  di  miglioramento  dell’architettura   progettata.  

(8)

Lo  stato  dell’arte   2  

 

2 Lo  stato  dell’arte  

La  necessità  d’integrazione  delle  varie  piattaforme  software  è  divenuta  indispensabile  dal   momento   in   cui   ha   preso   piede   il   Web;   la   rete   mette   a   disposizione   un   ottimo   mezzo   di   comunicazione   ai   fini   dell’integrazione   dei   vari   sistemi   e   le   prospettive   di   crescita   ed   evoluzione  delle  aziende  sono  molto  interessanti.    

Per   questo   è   necessario   che   un’azienda   miri   ad   evolversi   continuamente   riconsiderando   periodicamente   la   propria   organizzazione   dal   punto   di   vista   della   tecnologia   utilizzata,   eventualmente  adottandone  una  nuova,  ed  anche  a  livello  di  struttura  interna,  fondendola   in  alcuni  casi  con  quella  di  altre  aziende.  

L’impatto   che   potrebbe   avere   questa   reingegnerizzazione   spesso   non   è   indolore,   sia   a   livello   finanziario,   per   l’acquisto   del   software,   sia   in   termini   di   conoscenze   sul   sistema   utilizzato,  che  dovranno  essere  riacquisite  dai  propri  tecnici  ed  operatori.

 

In   questo   ambito   entra   in   gioco   l’EAI1,   una   filosofia   di   sviluppo   di   nuovi   sistemi   che   mira   all’integrazione  delle  strutture  esistenti  all’interno  dell’azienda,  senza  che  queste  debbano   essere  sostituite  o  modificate  pesantemente.

 

Prima  della  nascita  dell’EAI,  l’integrazione  era  una  scelta  molto  più  rischiosa  per  le  aziende:   esse   avrebbero   dovuto   fare   un   accurato   studio   di   fattibilità   per   valutare   tempi,   costi   e   rischi.   In   alcuni   casi   i   risultati   di   tale   studio   potevano   portare   le   compagnie   a   rinunciare   all’integrazione;   in   altri   invece,   dopo   aver   deciso   di   intraprendere   tale   strada,   il   processo   poteva  impiegare  anni  per  arrivare  a  conclusione  o  addirittura  poteva  interrompersi  prima   della  completa  realizzazione  a  causa  della  crescita  imprevista  dei  costi.  

L’approccio   EAI   permette   di   superare   queste   problematiche,   definendo   una   metodologia   per  far  comunicare  fra  loro  applicazioni  diverse  senza  doverle  modificare  ad  hoc;  il  processo   d’integrazione   viene   separato   dalle   specifiche   applicazioni,   che   vengono   messe   in   comunicazione  attraverso  lo  scambio  di  messaggi.  Tramite  l’EAI  non  è  garantito  solamente   il   mezzo   per   il   trasporto   dei   messaggi,   ma   anche   il   loro   instradamento,   filtraggio   ed   elaborazione   nascondendo   la   diversità   delle   varie   applicazioni   e   dei   sistemi   connessi.   In   questo  modo  permette  di  accedere  ad  ognuno  di  essi  utilizzando  sempre  lo  stesso  modello   di  programmazione  ed  il  medesimo  formato  di  scambio  di  dati.  L’EAI  è  quindi  la  soluzione   ideale  per  ambienti  eterogenei.

                                                                                                                          1EAI  =  Enterprise  Application  Integration.

(9)

Lo  stato  dell’arte   2  

 

Ad   oggi   lo   scenario   è   ulteriormente   cambiato,   infatti   la   frontiera   dell’integrazione   si   è   spostata   dal   cercare   di   interconnettere   sistemi   diversi   appartenenti   alla   stessa   organizzazione,  al  cercare  di  far  comunicare  piattaforme  appartenenti  ad  aziende  differenti.   Sebbene  l’EAI  tenti  di  risolvere  questo  problema,  le  soluzioni  proposte  non  sono  però  del   tutto   utilizzabili,   in   quanto   il   controllo   dell’elaborazione   non   è   più   in   mano   a   una   singola   azienda,  ma  a  compagnie  differenti.    

Dalla   necessità   di   trovare   un   procedimento   standard   per   poter   esporre   un   software   sulla   rete   attraverso   un’interfaccia   comprensibile   a   tutte   le   organizzazioni   che   lo   utilizzeranno,   sono  nati  i  Web  Service  e  le  architetture  orientate  ai  servizi,  SOA2.  

Tramite  questi  nuovi  concetti  architetturali,  la  difficoltà  incontrata  dai  progettisti  non  è  più,   quindi,  la  condivisione  delle  informazioni  tra  organizzazioni  diverse,  quanto  il  superamento   delle  proprie  barriere   mentali;  spesso,   infatti,  la  migrazione  verso  una  nuova  architettura   viene  messa  da  parte  perché  considerata  come  un  costo  anziché  come  un  beneficio.  

2.1 Le  architetture  orientate  ai  servizi  

L’OASIS3  definisce  il  SOA  in  questo  modo:  

“un   paradigma   per   l'organizzazione   e   l'utilizzazione   delle   risorse   distribuite   che   possono   essere   sotto   il   controllo   di   domini   di   proprietà   differenti.   Fornisce   un   mezzo   uniforme   per   offrire,   scoprire,   interagire   ed   usare   le   capacità   di   produrre   gli   effetti   voluti   consistentemente  con  presupposti  e  aspettative  misurabili.” (OASIS)  

Altri   esperti   del   settore   come   Mike   Rosen   danno   una   visione   più   business   al   concetto   di   SOA:  

“uno  stile  architetturale  finalizzato  alla  costruzione  di  soluzioni  enterprise  basate  su  servizi.  

Più  specificatamente,  SOA  ha  a  che  fare  con  la  costruzione  di  servizi  allineati  con  il  business   e  che  possono  essere  combinati  in  processi  di  business  di  altro  livello  e  in  soluzioni  all’interno   di  un  contesto  enterprise”. (Rosen)

La  filosofia  di  sviluppo  SOA,  quindi,  prende  campo  dal  momento  in  cui  conviene  realizzare   sistemi  già  pensando  all'integrazione  piuttosto  che  adattarli  volta  per  volta.  Questa  filosofia  

                                                                                                                          2  SOA  =  Service  Oriented  Architecture.  

3  OASIS  =  Organization  for  the  Advancement  of  Structured  Information  Standards.  E’  un  consorzio  no-­‐profit  che   guida  lo  sviluppo,  la  convergenza  e  l'adozione  di  standard  aperti  per  la  società  dell'informazione  globale.  

(10)

Lo  stato  dell’arte   2  

 

punta  a  fornire  una  nuova  strategia  di  sviluppo  di  sistemi  orientati  al  B2B4  all’interno  di  un   contesto  eterogeneo  e  distribuito.  Con  questa  nuova  forma  architetturale  vengono  garantiti   i  requisiti,  essenziali  nel  mercato  di  oggi,  di  interoperabilità  e  riusabilità  dei  servizi  offerti  in   modo  da  andare  incontro  alle  esigenze  delle  varie  organizzazioni.  

2.1.1 I  servizi  

I   componenti   essenziali   dell’architettura   SOA   sono   i   servizi;   essi   sono   applicazioni,   indipendenti  tra  loro,  che  mettono  a  disposizione  singole  funzionalità  attraverso  la  rete.  In   questo  modo  le  aziende  possono  modificarli  più  semplicemente  e  velocemente,  combinarli,   aggiungerne   di   nuovi   ed   utilizzarli   in   modo   personalizzato;   ciò   è   garantito   dal   fatto   che   l’intera  architettura  non  è  più  vincolata  ad  una  piattaforma  specifica,  ma  viene  considerata   come  un  insieme  di  componenti  disaccoppiati  (loosely  coupled)  tra  loro.  

La  filosofia  SOA  permette,  quindi,  di  andare  a  progettare  sistemi  con  l’ottica  di  fornire  un   insieme  di  funzionalità  ad  altre  applicazioni  attraverso  un’interfaccia  ben  definita  nella  rete.   Riassumendo,  un  servizio  gode  delle  seguenti  proprietà:  

• Indipendenza   “fisica”:   il   funzionamento   non   deve   dipendere   né   dalla   piattaforma,   né  dal  sistema  operativo  e  neanche  dal  linguaggio  col  quale  viene  programmata.   • Indipendenza   “logica”:   i   servizi   devono   essere   debolmente   accoppiati   tra   loro,  

ovvero  devono  esistere  poche  dipendenze.  In  questo  modo  viene  garantita  maggior   flessibilità  e  riusabilità.  

• Pubblicazione:   deve   essere   resa   nota   solo   l’interfaccia   del   servizio   (le   funzionalità   offerte)   e   non   come   viene   realizzato.   Questa   deve   essere   pubblicata   sulla   rete   in   modo  che  tutti  gli  altri  componenti  possono  accedervi.  A  complicare  il  tutto  ci  sono   gli  aspetti  legati  al  controllo  degli  accessi  al  servizio,  ovvero  i  messaggi  che  vengono   scambiati  e  le  operazioni  che  vengono  eseguite;  per  questo,  insieme  all’interfaccia,   vengono   rese   note   anche   le   modalità   di   accesso   agli   stessi.   Infine   è   importante   sottolineare   il   fatto   che   tali   funzionalità   devono   essere   accessibili   in   modo   trasparente  rispetto  alla  loro  allocazione.    

                                                                                                                         

(11)

Lo  stato  dell’arte   2  

 

• Scalabilità:   i   servizi   devono   essere   realizzati   in   modo   tale   da   permetterne   la   composizione   con   altri   al   fine   di   creare   applicazioni   più   complesse.   Questa   proprietà,  nota  anche  come  “orchestrazione  dei  servizi”,  viene  raggiunta  sfruttando   dei  linguaggi  specializzati  come,  ad  esempio,  BPEL5.  

 

Figura 1: Sistema SOA

2.1.2 Funzionamento  

L’architettura  SOA  comprende  tre  attori  principali:  

1. Fornitore  (Service  Provider):  entità  che  mette  a  disposizione  il  servizio.   2. Consumatore  (Service  Consumer):  entità  che  utilizza  il  servizio.  

3. Service   Registry:   entità   in   cui   vengono   memorizzate   informazioni   sul   servizio   come,  ad  esempio,  l’URL6,  le  modalità  di  accesso,  etc.  

                                                                                                                          5  BPEL  =  Business  Process  Execution  Language.   6  URL  =  Uniform  Resource  Locator.  

(12)

Lo  stato  dell’arte   2  

 

Un  servizio  è  implementato  da  un  Service  Provider  che  lo  espone  verso  uno  o  più  Service   Consumer  attraverso  un’interfaccia.  I  consumatori  possono  essere  sia  applicazioni  interne,   come  processi  di  business  o  portali  Web,  sia  entità  esterne  all’organizzazione.  Attraverso  un   “contratto”  vengono  definite  le  strutture  delle  interfacce,  le  policy  di  sicurezza,  ma  anche   aspetti  non  funzionali  come  la  disponibilità  e  la  latenza  del  servizio;  questo  contratto  viene   aggiornato,  ma  comunque  mantenuto,  anche  quando  vengono  modificate  le  funzionalità.   Il   consumatore   può   ricercare   ed   accedere   al   componente   offerto   in   rete   tramite   meccanismi   di   naming;   le   informazioni   utili   per   effettuare   questi   controlli   sono   memorizzate  nel  Service  Registry.  

In  Figura  2  viene  mostrato  un  tipico  scenario  delle  applicazioni  in  ottica  SOA.  

 

Figura 2: Esempio di scenario SOA

2.1.3 Campi  d’applicazione  

Le  architetture  SOA  trovano  la  loro  reale  applicazione,  ad  esempio,  in  concetti  ormai  non   più  emergenti  come  il  grid  computing  e  l’on-­‐demand  computing.  

I  grid  computing,  o  sistemi  grid,  sono  un’infrastruttura  di  calcolo  distribuito,  utilizzati  per   l’elaborazione  di  grandi  quantità  di  dati  utilizzando  una  vasta  quantità  di  risorse.  Esistenti   ormai   da   metà   degli   anni   novanta   (grazie   all’affermazione   delle   reti   di   calcolatori   e   di  

(13)

Lo  stato  dell’arte   2  

 

Internet),   questi   sistemi   centrano   il   loro   funzionamento   sulla   condivisione   coordinata   di   risorse   all’interno   di   una   dinamica   organizzazione   virtuale.   Per   risorse   s’intendono   sia   computer,  sia  software  o  più  in  generale  qualsiasi  hardware  che  permetta  la  risoluzione  di   problemi   ingegneristici   e   scientifici.   A   differenza   del   Web   non   mira   a   condividere   informazioni,  ma  punta  a  creare  una  rete  di  computer  che  possa  aumentare  la  potenza  di   calcolo;   infatti,   la   caratteristica   comune   dei   progetti   grid   è   la   necessità   di   disporre   di   un   ambiente   di   calcolo   all’interno   del   quale   le   applicazioni   hanno   il   bisogno   di   accedere   a   grandi  quantità  di  dati,  geograficamente  distribuiti,  in  maniera  veloce  e  affidabile.  È  facile   osservare   che   nessun   computer   attualmente   in   commercio   sarebbe   in   grado,   da   solo,   di   elaborare  simili  moli  di  dati  in  tempi  ragionevoli;  ecco  che  l’architettura  SOA  porta  vantaggi   in  tal  senso  offrendo  soluzioni  più  flessibili  che  permettono  maggiori  prestazioni.  

Ad  oggi,  la  più  importante  grid  europea  è  quella  del  CERN7  di  Ginevra.  

 

Figura 3: Grid computing

Anche  l’on-­‐demand  computing  non  un  concetto  così  nuovo  dato  che  già  John  Mc  Carthy   nel  1961  disse:    

“If   computers   of   the   kind   I   have   advocated   become   the   computers   of   the   future,   then   computing  may  someday  be  organized  as  a  public  utility  just  as  the  telephone  system  is  a   public   utility...   The   computer   utility   could   become   the   basis   of   a   new   and   important   industry.”  (Carthy)  

                                                                                                                         

7   CERN   =   Centro   Europeo   di   Ricerca   Nucleare.   E’   il   più   grande   laboratorio   al   mondo   di   fisica   delle   particelle   fondato  nel  1954.  

(14)

Lo  stato  dell’arte   2  

 

A  metà  degli  anni  novanta  anche  le  grandi  aziende  sono  tornate  sul  concetto  di  on-­‐demand   computing;   con   esso   s’intende,   infatti,   la   possibilità   di   gestire   l’infrastruttura   IT   aziendale   come  se  fosse  un  servizio  interno,  analogo  all’erogazione  di  energia  elettrica  o  impianti  di   telefonia.   L’obiettivo   è   di   allocare   dinamicamente   le   risorse   elaborative   necessarie   a   soddisfare  i  fabbisogni  presenti  e  futuri;  si  tratta  di  un  modello  in  cui  viene  utilizzato  solo   ciò   che   effettivamente   serve.   Nel   caso   in   cui   si   presentano   malfunzionamenti,   si   possono   riallocare  le  risorse  per  far  fronte  al  fabbisogno  richiesto  dovuto  indifferentemente  sia  da   un  picco  di  richiesta  sia  dalla  mancata  disponibilità  di  un  nodo.    

Anche   in   questo   caso   è   facile   intuire   come   i   principi   SOA   possono   fondersi   bene   con   tali   idee.  

2.1.4 Considerazioni  finali  

Ponendosi  nuove  ed  ambiziose  sfide  prestazionali,  i  team  IT  devono  tenere  comunque  sotto   controllo  i  flussi  dei  propri  processi  al  fine  di  poterne  analizzare  le  vere  performance  e  di   poterne  capire  e  risolvere  rapidamente  eventuali  errori.  Per  garantire,  quindi,  le  maggiori   prestazioni  promesse  è  necessario  che  vengano  rispettati  tali  requisiti:  

• Monitoraggio   del   tempo   di   reazione   end-­‐to-­‐end   (di   tutto   il   processo)   delle   varie   operazioni.  

• Profonda  conoscenza  delle  performance  dei  servizi  (cause  delle  scarse  prestazioni  e   impatto  dei  servizi  carenti  sulle  applicazioni).  

• Capacità   di   mappare   tutte   le   varie   funzionalità   e   le   associate   dipendenze   con   il   livello  di  granularità  minimo  necessario  (singole  operazioni).  

• Definire  parametri  precisi  (KPI8)  secondo  cui  valutare  in  tempo  reale,  24  ore  su  24,  7   giorni  su  7,  le  prestazioni;  in  questo  modo  è  possibile  anche  dare  notifica  anticipata   di  possibili  rallentamenti  o  blocchi  di  servizi.  

Con  questi  requisiti  i  team  possono  considerarsi  pienamente  sotto  controllo  delle  attività  

complesse  e  composte  su  cui  lavorano  quotidianamente.    

                                                                                                                          8  KPI  =  Key  Performance  Indicator.  

(15)

Lo  stato  dell’arte   2  

 

2.2 I  Web  Service  

Per  il  W3C9:  

“A   Web   service   is   a   software   system   identified   by   a   URI,   whose   public   interfaces   and  

bindings   are   defined   and   described   using   XML.   Its   definition   can   be   discovered   by   other   software   systems.   These   systems   may   then   interact   with   the   Web   service   in   a   manner   prescribed   by   its   definition,   using   XML   based   messages   conveyed   by   internet   protocols   (HTTP)”.  (W3C, 2002)

In   altre   parole   tali   sistemi   software   sono   applicazioni   web   che   cooperano   tra   loro,   indipendentemente   dalla   piattaforma   sulla   quale   si   trovano,   attraverso   lo   scambio   di   messaggi;   essi   sono   progettati   per   supportare   l’interoperabilità   all’interno   di   contesti   distribuiti.  

Date  le  tante  analogie  concettuali  con  le  architetture  SOA,  è  intuitivo  capire  che  fondendo  i   due   principi   è   possibile   ottenere   un   maggior   supporto   all’integrazione   e   maggiori   prestazioni  delle  piattaforme  aziendali.  

Vediamo  adesso  i  Web  Service  più  da  vicino,  descrivendo  in  dettaglio  le  tecnologie  da  cui   sono   costituiti.   Esse   si   basano   su   XML10,   un   linguaggio   di   markup,   derivato   da   SGML11,   utilizzato  per  la  memorizzazione  d’informazione  in  maniera  strutturata.  XML  è  un  formato   indipendente   dalle   varie   piattaforme;   ciò   è   dovuto,   oltre   che   all’essere   universalmente   riconosciuto  come  standard,  anche  al  fatto  che  tale  tecnologia  si  basa  sul  formato  testuale   e   quindi   un   può   essere   interpretato   chiaramente   su   qualsiasi   sistema   operativo.   Questa   indipendenza  lo  rende  la  soluzione  ideale  per  lo  scambio  d’informazioni  attraverso  il  Web.   Le  tecnologie  su  cui  si  basano  i  Web  Service  sono:  

• SOAP  (Simple  Object  Access  Protocol)   • WSDL  (Web  Service  Descripton  Language)  

• UDDI  (Universal  Description  Discovery  and  Integration)  

Essi  sono  protocolli  di  livello  applicazione  dello  stack  TCP/IP,  come  mostrato  in  Figura  4,  per   cui  viene  dato  per  scontato  quello  che  si  trova  del  livello  Network  in  poi.  

                                                                                                                         

9  W3C  =  World  Wide  Web  Consortium.  E’  un'organizzazione  non  governativa  internazionale  fondata  nel  1984  da   Tim  Berners-­‐Lee  che  ha  come  scopo  quello  di  sviluppare  tutte  le  potenzialità  del  World  Wide  Web.  

10  XML  =  eXtensible  Markup  Language.  

(16)

Lo  stato  dell’arte   2  

 

 

Figura 4: Web Service Stack

2.2.1 SOAP  

SOAP   è   un   protocollo   di   trasmissione   di   messaggi   in   formato   XML.   Esso   mette   a   disposizione  un  meccanismo  semplice,  ma  allo  stesso  tempo  solido,  che  permette  ad  una   applicazione   di   mandare   un   messaggio   XML   ad   un’altra   applicazione.   Un   messaggio   è   costituito   da   una   trasmissione,   dal   mittente   al   ricevente,   che   può   contenere   uno   o   più   messaggi  (input/output);  questi  definiscono  il  tipo  di  comunicazione  che  stiamo  stabilendo:   One-­‐way,  Request-­‐response,  Solicit-­‐response,  Notification.

 

2.2.1.1 Struttura  di  un  messaggio  SOAP  

Un   messaggio   SOAP   è   costituito   da   un   contenitore,   chiamato   “Envelope”,   all’interno   del   quale   vengono   distinte   due   sezioni   principali   denominate   “Header”   e   “Body”,   che   contengono  rispettivamente  l’intestazione  ed  il  corpo  del  messaggio.

 

La   rappresentazione   grafica   di   Figura   5   aiuta   a   comprendere   meglio   la   struttura   appena   descritta.  

(17)

Lo  stato  dell’arte   2  

 

 

Figura 5: Struttura messaggio SOAP

Envelope:   elemento   obbligatorio   che   identifica   il   documento   XML   come   un   messaggio  SOAP.

Header:  elemento  opzionale  che  contiene  informazioni  dirette  ai  nodi  intermediari,   riguardanti   l’instradamento   del   messaggio   sulla   rete;   in   questi   blocchi   sono   contenute   anche   le   informazioni   sulla   sicurezza   (crittografia,   autenticazione,   firma,…)

Body:   elemento   obbligatorio   che   contiene   informazioni   sulla  

chiamata   e   sulla   risposta.   E’   strutturato   secondo   il   formato   XML   e   può   contenere   sia   semplici   dati   che  chiamate  a  procedure  (RPC).

Fault:   elemento   opzionale   che   fornisce   informazioni   sugli   eventuali  

errori   che   potrebbero  verificarsi  in  fase  di  processo  dei  messaggi.

Vediamo   ora   un   semplice   esempio   di   comunicazione   SOAP   tra   un   Web   Service   e   un   suo   consumer.  Il  servizio  possiede  operazioni  per  la  ricerca  (per  id,  per  nome,  per  range  di  date)   e   per   la   rimozione   di   uno   sport.   Assumendo   che   sia   ben   noto   l'URL   del   servizio,   l'applicazione   client   che   vuole   effettuare   ricercare   o   rimuovere   uno   sport   (fornendo   i   parametri   corretti)   può   invocare   l'operazione   remota   inviando   un   messaggio   SOAP;   la   Figura  6  e  la  Figura  7  mostrano  lo  scambio  di  messaggi  tra  i  due  attori.  

(18)

Lo  stato  dell’arte   2  

 

 

Figura 6: SOAP Request

 

Figura 7: SOAP Response

2.2.1.2 SOAP  e  allegati  

E’   possibile   avere   la   necessità   di   inviare   allegati   di   qualsiasi   genere   (mp3,   jpg,   mpg,…),   rappresentati   come   dati   binari   nel   calcolatore.   Ad   esempio,   quando   dobbiamo   inviare   un   file   binario,   viene   effettuata   una   doppia   conversione   dei   dati   binari   (codifica/decodifica   Base64),  in  invio  e  ricezione,  per  poter  essere  trasportati  all’interno  di  un  messaggio  SOAP.   Questa  comporta  una  perdita  di  tempo  e  così  sono  nate  soluzioni  in  cui  i  dati  relativi  agli   allegati  rimangono  separati  dal  messaggio  SOAP;  ad  esempio  sono  utilizzati  pacchetti  XOP12  

o  MIME13.    

                                                                                                                          12  XOP  =  Xml  binary  Optimization  Package.   13  MIME  =  Multipurpose  Internet  Mail  Extension.  

(19)

Lo  stato  dell’arte   2  

 

2.2.2 WSDL  

WSDL  è  un  linguaggio  basato  su  XML  utilizzato  per  descrivere  in  modo  completo  un  servizio   web.   Questo   file   descrive   un   servizio   per   “cosa   fa”,   “cosa   comunica”   e   “dove   si   trova”   in   modo  tale  da  fornire  tutti  i  dettagli  necessari  per  permettere  una  corretta  invocazione  dello   stesso.  

Esistono   due   versioni   di   tale   linguaggio   (WSDL   1.0   e   WSDL   2.0),   diverse   solo   per   terminologia  e  per  struttura,  ma  non  per  i  concetti  che  esprimono.  

2.2.2.1 Struttura  di  un  WSDL  

Un  documento  WSDL  utilizza  un  insieme  di  definizioni.  Esso  inizia  sempre  con  un  elemento   radice  “definitions”  ed  al  suo  interno  utilizza  i  seguenti  costrutti:  

• Types:  racchiude  le  definizioni  dei  tipi  dei  dati  che  sono  coinvolti  nello  scambio  dei   messaggi.   Come   sistema   standard   per   la   tipizzazione,   WSDL   si   basa   su   quello   definito   per   gli   schemi   XML   (XSD14),   ma   allo   stesso   tempo   è   possibile   aggiungere   anche  altri  tipi.  

• Message:   definisce   l’input   e   l’output   dei   servizi.   Ogni   elemento   “message”   racchiude  le  informazioni  sui  parametri  relativi  ad  uno  specifico  messaggio.  

• Port   type:   riporta   dettagli   relativi   alle   operazioni   che   un   Web   Service   rende   disponibili.   Ogni   operazione   viene   descritta   facendo   uso   di   un   ulteriore   elemento   chiamato   “operation”.   Al   suo   interno   vi   sono   i   messaggi   di   input   e/o   di   output   accettati   dal   servizio   e   l’ordine   che   è   necessario   seguire   per   il   passaggio   dei   parametri.   Tali   messaggi   vengono   identificati   rispettivamente   dagli   omonimi   elementi;  la  presenza  di  uno  o  entrambi  di  essi  e  l’ordine  in  cui  vengono  riportati   determinano  la  tipologia  del  servizio.  Può  essere  presente  anche  l’elemento  “fault”   che  specifica  il  formato  del  messaggio  per  ogni  errore  che  può  essere  restituito  in   output  dall’operazione.  

• Binding:  descrive  il  modo  in  cui  avviene  la  comunicazione  con  il  servizio.  Qui  viene   stabilito   il   legame   di   ogni   funzionalità   del   Web   Service   con   il   protocollo   per   lo   scambio  di  messaggi,  ad  esempio,  HTTP.  In  particolare  si  specifica  il  protocollo  per  

                                                                                                                          14  XSD  =  XML  Schema  Definition.

(20)

Lo  stato  dell’arte   2  

 

ognuno   dei   messaggi   di   un   servizio;  solitamente   viene   scelto   HTTP(s)   come   protocollo  di  trasporto  per  i  messaggi  SOAP.  

• Service:   è   la   sezione   relativa   alla   localizzazione   del   Web   Service.   Al   suo   interno   si   trova  l’elenco  di  tutti  i  servizi  messi  a  disposizione;  ognuno  di  essi  è  definito  da  un   indirizzo  URL,  chiamato  anche  endpoint,  al  quale  può  essere  trovato  il  Web  Service.  

I   primi   tre   punti   descrivono   il   servizio   in   un   modo   più   astratto,   mentre   gli   ultimi   due   descrivono  concretamente  come  e  dove  vengono  trasportati.    

Di  seguito  viene  riportato  un  esempio  di  documento  WSDL  2.0,  relativo  ad  un  Web  Service   per  un’agenzia  di  scommesse.  

 

Figura 8: Esempio di documento WSDL per un Web Service

2.2.2.2 Tipologia  di  un  servizio  

Abbiamo  accennato  poco  sopra,  nella  sezione  relativa  a  “portType”,  che  i  servizi  possono   appartenere   ad   una   tipologia   piuttosto   che   ad   un’altra,   in   relazione   alla   presenza   e   all’ordine   degli   elementi   input   ed   output.   Le   tipologie   a   cui   un   servizio   può   appartenere   sono  quattro:

 

One-­‐way:   è   presente   il   solo   elemento   input.   Come   intuibile   dal   nome,   la   comunicazione  avviene  in  una  sola  direzione  ed  in  modo  asincrono:  viene  inviato  un   messaggio  da  un  client  al  servizio,  dopodiché  il  primo  continua  la  sua  computazione   senza  attendere  una  risposta  dal  secondo.

 

Request-­‐response:  sono  presenti  entrambi  gli  elementi  input  ed  output,  in  questo   ordine.   Il   servizio   riceve   il   messaggio   di   richiesta   dal   client   e,   dopo   aver   eseguito   l’elaborazione  relativa,  manda  indietro  un  messaggio  di  risposta  (sincrono).

 

(21)

Lo  stato  dell’arte   2  

 

Solicit-­‐response:  vi  sono  entrambi  gli  elementi  ma  in  ordine  inverso.  E’  il  servizio  ad   iniziare   la   comunicazione   inviando   un   messaggio   al   client   ed   attendendo   poi   una   sua  risposta.

 

• Notification:   è   il   caso   opposto   del   One-­‐way.   Il   servizio   spedisce   un   messaggio   al   client  senza  attendere  una  sua  risposta.  E  ́  quindi  presente  solo  l’elemento  output.  

Ognuna  di  queste  tipologie  individua  la  natura  del  servizio  che  stiamo  descrivendo.  Ad   esempio,  la  tipologia  Request-­‐response  è  quella  utilizzata  nel  modello  di  comunicazione   RPC15,   mentre   si   può   avere   il   caso   One-­‐way   quando   sia   presente   un   servizio   che  

memorizza  dati  ricevuti  da  più  client,  senza  restituire  un  messaggio  di  risposta.    

                                                                                                                          15  RPC  =  Remote  Procedure  Call.  

(22)

Lo  stato  dell’arte   2  

 

2.2.3 UDDI  

E’   una   metodologia   standard   per   la   pubblicazione   e   la   rintracciabilità   di   un   servizio   in   un’architettura   SOA.   I   fornitori   dei   servizi   UDDI   (IBM,   Microsoft,   SAP,   …)   gestiscono   un   registro

 

basato  su  XML  e  che  utilizza  SOAP  per  le  comunicazioni  da  e  verso  l’esterno;  si  può   accedere  a  questo  registro  per:  

Pubblicare  servizi  che  un’azienda  rende  disponibili.

 

Cercare  aziende  che  mettono  a  disposizione  un  certo  tipo  di  servizio.

 

Avere   informazioni,   comprensibili   all’utente,   relativi   ad   un’azienda   come   indirizzi,   contatti  o  altro.

 

Avere  informazioni  tecniche,  interpretabili  ed  utilizzabili  dalla  macchina,  relative  ad   un  servizio  in  modo  tale  da  potervisi  connettere.

 

Un   registro   UDDI   è   costituito   da   un   database   distribuito,   cioè   da   molti   registri   distribuiti   sulla  rete,  ognuno  dei  quali  si  trova  sul  server  di  un’azienda  che  contribuisce  allo  sviluppo  di   questo  archivio  pubblico,  e  connessi  fra  loro.  L’informazione  viene  memorizzata  su  un  nodo   del   sistema   e   poi,   attraverso   una   sincronizzazione,   viene   resa   disponibile   a   tutti   gli   altri.   Questo,   oltre   che   ad   alleggerire   il   carico   di   lavoro   che   un   singolo   nodo   deve   sopportare,   contribuisce   alla   protezione   del   sistema   contro   possibili   situazioni   critiche   del   database,   grazie   alla   ridondanza   dei   dati.  

 

Per   semplicità   consideriamo   UDDI   come   un   unico   grande   registro.    

Riassumendo,  UDDI  è  visto  come  un  elenco  telefonico,  ed  offre  tre  servizi:  

• White   Pages:   permette   di   trovare   informazioni   di   un   servizio   per   nome   (indirizzo,   contatti,…).  

• Yellow  Pages:  permette  di  trovare  un  servizio  per  categoria.  

• Green  Pages:  fornisce  informazioni  tecniche  sui  servizi  offerti  da  un’azienda.  

2.2.3.1 Struttura  registro  UDDI  

Il  registro  UDDI  è  composto  da  quattro  parti  principali,  ognuna  delle  quali  con  scopi  diversi:  

• businessEntity:  memorizza  informazioni  relative  alle  aziende  che  hanno  pubblicato   il  Web  Service,  come,  ad  esempio,  il  nome,  l’indirizzo  e  i  contatti  (White  Pages).  Ad   ognuna  di  esse  fanno  riferimento  una  o  più  businessService.  

(23)

Lo  stato  dell’arte   2  

 

• businessService:  memorizza  informazioni  descrittive  di  un  particolare  servizio  come   il  nome  e    la  categoria  di  appartenenza,  (Yellow  Pages).    

• bindingTemplate:   memorizza   informazioni   tecniche   di   un   Web   Service,   come   la   localizzazione   e   le   modalità   di   accesso   (Green   Pages).   Mette   in   relazione   un  

businessService  con  la  sua  reale  implementazione.  

• tModel:   memorizza   informazioni   tecniche   che   descrivono   una   particolare   tecnologia  di  servizio,  compresa  la  specifica  della  relativa  interfaccia  (Green  Pages).   Questo   registro   definisce   la   specifica   di   un   certo   tipo   di   servizio,   precisando,   ad   esempio,  l’interfaccia  che  esso  deve  o  dovrà  avere;  infatti,  non  è  indispensabile  che   un   servizio   sia   implementato,   ma   è   sufficiente   che   sia   ideato   in   termini   di   specifiche.   Esso   memorizza   l’URL   del   WSDL   e   successivamente,   quando   verrà   implementato,  il  “bindingTemplate”  si  riferirà  a  uno  o  più  “tModel”.  

In  Figura  9  viene  schematizzato  quanto  detto  precedentemente.  

 

(24)

Lo  stato  dell’arte   2  

 

2.2.4 Modello  di  funzionamento  

DI   seguito   viene   riportato   il   funzionamento   di   un’architettura   SOA   che   fa   uso   della   tecnologia  dei  Web  Service.  

 

Figura 10: Architettura SOA con Web Service

La  Figura  10  evidenzia  l’interazione  che  c’è  tra  i  Service  Provider,  Service  Consumer  e  UDDI   Service.  Sono  raffigurati  tre  Web  Service  generici  per  indicare  il  fatto  che  in  un’architettura   SOA   non   esistono   ruoli   designati,   ma   tutti   i   servizi   possono   essere   sia   fornitori   che   consumatori;   il   ruolo   è   quindi   stabilito   dalle   connessioni.   In   questo   specifico   esempio,   il   Web  Service  in  alto  a  destro  espone  un  servizio  e  gli  altri  due  lo  utilizzano.

Il  Service  Provider  crea  un  servizio  e  pubblica  la  sua  descrizione,  il  WSDL,  su  UDDI.  In  questo   modo  gli  altri  Web  Service,  i  Service  Consumer,  vanno  a  ricercare  il  servizio  interrogando  il   registro   UDDI;   una   volta   ottenuto   il   file   WSDL,   essi   effettuano   il   binding   del   servizio   (si   collegano  al  server  del  fornitore)  ed  iniziano  ad  invocare  le  operazioni  messe  a  disposizione   utilizzando   le   giuste   convenzioni   (nome   metodo,   parametri,   …).   Lo   scambio   di   messaggi   avviene   col   protocollo   SOAP   in   modo   tale   che   siano   comprensibili   sia   al   fornitore   che   al   consumatore.  

Le  operazioni  possibili  sono  quindi  tre:  

• Publish:   pubblicazione   della   descrizione   del   servizio   effettuata   dal   fornitore   del   servizio.  

(25)

Lo  stato  dell’arte   2  

 

Inquiry:   ricerca   della   descrizione   dell’interfaccia   del   servizio   da   utilizzare.   Inoltre,   sempre   in   questa   fase,   viene   effettuato   il   binding   del   servizio   usando   le   informazioni  trovate  nel  WSDL.

 

Comunication:  scambio  di  messaggi  tra  i  Web  Service  attraverso  le  specifiche  del   protocollo  SOAP.

 

Ad  oggi,  però,  si  riscontra  come  il  meccanismo  UDDI  non  sia  molto  utilizzato  e  la  ricerca  e   pubblicazione   dei   servizi   viene   fatta   secondo   una   procedura   “manuale”,   ovvero   saranno   direttamente   le   aziende   che   lo   cercano   nel   web,   tramite   passaparola   o   altri   meccanismi   alternativi.  

Analizzando  il  modello  di  funzionamento  dei  Web  Service  (Figura  10)  e  quello  SOA  (Figura  2)   si   può   affermare   che   i   due   principi   si   sposano   molto   bene   insieme;   entrambi,   infatti,   offrono:

 

Indipendenza  dalla  piattaforma:  i  Web  Services  possono  comunicare  fra  loro  anche   se  si  trovano  su  piattaforme  differenti.

Indipendenza   dall’implementazione:   l’interfaccia   che   un   Web   Service   presenta   sulla   rete   è   indipendente   dal   software   che   implementa   tale   servizio.   In   questo   modo  potrà  essere  cambiata,  migliorata  o  sostituita  senza  che  l’interfaccia  subisca   modifiche.

Riuso  dell’infrastruttura:  per  lo  scambio  di  messaggi  si  utilizza  SOAP  che  fa  uso  di   HTTP,   grazie   al   quale   si   ottiene   anche   il   vantaggio   di   permettere   ai   messaggi   di   passare  attraverso  i  firewall.

Riuso   del   software:   è   possibile   riutilizzare   software   implementato  

precedentemente  e  renderlo  disponibile  attraverso  la  rete.

Quindi,   sfruttando   al   meglio   tutte   le   caratteristiche   della   tecnologia   dei   Web   Services,   si   può  implementare  un  sistema  con  architettura  orientata  ai  servizi  su  larga  scala,  ovvero  su  

(26)

Lo  stato  dell’arte   2  

 

2.2.5 Considerazioni  finali  

In   questo   paragrafo   viene   spiegato   come   parlare   di   Web   Service   non   implica   necessariamente   parlare   di   architettura   SOA.   Ad   esempio,   uno   scenario   che   evidenzia   questo   può   essere   quello   in   cui   in   una   rete   interna   ad   un’azienda   vengono   realizzate   applicazioni  basate  sui  Web  Service;  se  si  prevede  che  le  modifiche  da  apportare  al  sistema   non  siano  così  frequenti  nel  tempo,  è  possibile  memorizzare  le  informazioni  di  ognuno  dei   servizi  nei  file  di  configurazione.    

Questo   significa   che   il   consumatore   conosce   già   l’URL   a   cui   trovare   il   servizio   reso   disponibile   dal   fornitore;   vengono,   perciò,   utilizzati   dei   riferimenti   statici   per   accedere   ai   vari  servizi.  

  Figura 11: Web Service in una rete aziendale

Viene  di  seguito  descritto  un  secondo  caso  in  cui  i  Web  Service  sono  utilizzati  all’interno  di   un’architettura   a   servizi   al   fine   di   integrare   applicazioni   di   più   aziende   o   di   filiali   diverse   della  stessa  organizzazione.  In  questo  scenario  vengono  utilizzati  i  servizi  Web  per  garantire   che   due   aziende   partner   possono   mettere   a   disposizione   funzionalità   a   vicenda,   senza   preoccuparsi  degli  aspetti  di  compatibilità  tra  piattaforme,  tra  linguaggi  di  programmazioni   e  tra  sistemi  operativi.  

(27)

Lo  stato  dell’arte   2  

 

 

Figura 12: Web Service in un'architettura SOA

L’esempio   mostra   quanto   descritto   precedentemente;   infatti   vengono   integrati   Web   Service  realizzati  su  due  piattaforme  diverse,  J2EE16  e  .NET17.  A  differenza  dell’esempio  in   Figura  11,  non  si  conoscono  gli  URL  al  momento  dell’implementazione  dei  servizi,  per  cui  è   necessario  che  il  Service  Registry  fornisca  gli  indirizzi  ed  altre  utili  informazioni  a  tempo  di   esecuzione.

                                                                                                                          16J2EE  =  Java  2  Platform  Enterprise  Edition. 17.NET  =  Microsoft  .NET.

Riferimenti

Documenti correlati

Al candidato è richiesta l’elaborazione di una proposta metodologica sulla base della quale giungere alla definizione della Specifica dei Requisiti Funzionali da

mento sul sito FNOMCeO può accedere ai corsi; chi si fosse registrato direttamente sulla piattaforma FadInMed dovrà invece prima farsi accreditare nel sito della

• i medici che abbiano acquisito il diploma di formazione specifica in medicina generale successivamente alla data di scadenza della presentazione della domanda di inclusione

Fra i progetti compresi nel settore ovest c’è l’edificio di Baumschlager Eberle Architekten e Scape (con Francesco Marinelli, Paolo Mezzala- ma e Alessandro Cambi), nel lotto 09,

“Codice”: il Codice dei contratti pubblici di cui al D.Lgs. ”Forma.Temp”: il committente o stazione appaltante. ”Prestatore”: l’operatore economico aggiudicatario cui

– Sono consentiti i corsi di formazione specifica in medicina generale nonché le attività didattico-formative degli Istituti di formazione dei Ministeri dell'interno, della

Non tutti sanno che san Carlo, negli anni del proprio epi- scopato nella Chiesa ambrosiana (1564-1584), fu grande estimato- re dei Barnabiti: coltivò una gran- de amicizia con

Il Premio, dunque, era un tentativo di modificare quell’immagine tecnocratica dell’Europa Da tre anni sono alla guida del Teatro Stabile di Torino e, in questo ruolo, ho avuto