Corso di
Web Services
A A. 2010 2011
Domenico Rosaci
SOA
D. Rosaci
SOA
SOA: Bridging IT e Business
• L’importanza di SOA non è solo a livelli tecnologico
• Essa fornisce un ponte tra tecnologia e business
• L’IT fornisce interfacce ai business service e li
combina in applicazioni che supportano i rapidi
cambiamenti del business stesso
• Identificare l’insieme di servizi che un business
richiede al proprio IT non è semplice
• E’ necessaria un’attività specifica (Service
Identification) che determini i servizi e le loro
interdipendenze, così come i componenti a “grana
grossa” che li supportano
D. Rosaci
SOA
2
Patterns e SOA
D. Rosaci
SOA
3
Patterns e SOA
D. Rosaci
SOA
4
Patterns e SOA
• Il Self-Service business pattern permette agli utenti di
interagire con i business services.
• Il Collaboration pattern permette le collaborazioni tra business
• partners che in parte coinvolgono l’integrazione di servizi e in
parte coinvolgono persone e workflow
• L’Extended Enterprise business pattern permette ad un
business di interagire con altri business services.
• Questi Business patterns sono combinati al front-end usando
Access Integration pattern e al back-end usando Application
Integration pattern.
D. Rosaci
SOA
5
Example: Supply Chain
Management
• Scenario di business: Supply Chain semplificata per un
commerciante in elettronica (retailer)
• I consumers possono accedere al sito Web, consultare il
catalogo prodotti ed inserire ordini (TV, DVD players, video
camere, ecc.): B2C E-Commerce
• Per ogni voce dell’ordine, il sistema verifica se c’è merce
disponibile in magazzino. Altrimenti, viene ordinata la merce al
fornitore esterno (Manifacturer):B2B E-Commerce
• Il fornitore esterno non soddisfa immediatamente l’ordine, ma
aspetta di raccogliere un certo numero di ordini
D. Rosaci
SOA
6
Supply Chain Management
D. Rosaci
SOA
7
Passi dell’approccio SOA
• Metodo per scoprire servizi (top down) e per sfruttare servizi
esistenti (bottom up)
• Sette step principali
• Non sono step necessariamente sequenziali, ma spesso
seguono un approccio iterativo ed esplorativo
• Il processo può essere ottimizzato determinando quali step
condurre in parallelo e quali sono invece dipendenti da altri
step
D. Rosaci
SOA
8
Passi dell’approccio SOA
D. Rosaci
SOA
9
Passi del processo SOA
• Il processo inizia quando il business problem suggerisce l’uso
di un approccio service-oriented. Tipici candidati sono i
business problem che necessitano l’esposizione di un back
office verso l’esterno dell’azienda
• L’aspetto top down si evidenzia col prendere in considerazioni
le prospettive di business aziendale: le business functions, i
processi ed i sottoprocessi sono elaborati per delineare le
componenti software
• Le componenti sono i “mattoni” consentono la realizzazione
dei servizi, che sono le unità software rese disponibili per
l’orchestration, la choreography e la composizione delle
applicazioni
D. Rosaci
SOA
10
1. Domain decomposition
• Il dominio è suddiviso in
–
–
–
–
Value chain
Business processes
Sub processes
Use cases
Il dominio consiste di una serie di aree funzionali, lungo le dimensioni
chiamate value-net o value-chain.
D. Rosaci
SOA
11
1 Domain decomposition
D. Rosaci
SOA
12
1 Domain decomposition
• Quindi decomponiamo ogni area funzionale in processi, sotto
processi e use cases.
• Nel nostro esempio avremo i seguenti use cases:
–
–
–
–
–
–
–
–
D. Rosaci
UC1: Purchase Goods
UC2: Source Goods
UC3: Replenish Stock
UC4: Supply Finished Goods
UC5: Manufacture Finished Goods
UC6: Configure and Run Demo (non implementato)
UC7: Log Events
UC8: View Events
SOA
13
1. Domain decomposition
D. Rosaci
SOA
14
Domain Decomposition
• Noi possiamo usare gli use cases per decomporre
ulteriormente il dominio.
• Gli use cases identificati sono buoni candidati ad essere
servizi che dovranno essere “esposti” come Web services su
componenti aziendali
D. Rosaci
SOA
15
Domain decomposition
D. Rosaci
SOA
16
Applicazione dei pattern
• Ad ogni passo dell’approccio SOA, è possibile sfruttare assets
provenienti da esistenti Patterns per e Business
• Si inizia con i Business Patterns, per definire i partecipanti al
business e le loro relazioni, usando le aree funzionali e gli use
cases identificati nella domain decomposition
• Nell’esempio abbiamo due modelli di Business da
rappresentare:
– Un’interazione B2C tra il consumer e il business system del retailer
– Un’interazione B2B tra il warehouse del retailer e i manifacturer esterni
Questo implica l’uso del Self-Service business pattern e dell’Extended
Enterprise business pattern.
D. Rosaci
SOA
17
Usare i patterns
• Possiamo anche usare l’Application Integration pattern per
integrare i service consumers ed i service providers nella
supply value chain
• Inoltre possiamo usare l’Extended Business Pattern per i
service consumers ed i service providers ai “confini” aziendali
D. Rosaci
SOA
18
Usare i Patterns
D. Rosaci
SOA
19
1-Domain Decomposition
• A questo punto, possiamo descrivere i collegamenti tra i
business use cases della supply chain management e le aree
funzionali venute fuori dalla domain decomposition
• Per ogni use cases, specificheremo il pattern per l’e-business
applicato
D. Rosaci
SOA
20
1-Domain Decomposition
D. Rosaci
SOA
21
1-Domain Decomposition
D. Rosaci
SOA
22
2-Goal-service model
creation
• L’identificazione dei servizi permette di stabilire quali sono i
servizi da esporre per l’azienda
• Gli use cases identificati nella domain decomposition sono
buoni candidati come servizi
• La completezza dei servizi candidati viene testata attraverso
un modello goal-service
• Questo modello si realizza intervistando i proprietari
dell’azienda circa gli obiettivi dell’azienda stessa
• Ogni obiettivo viene poi partizionato in un insieme di sottoobiettivi, e si continua così finchè non siano emersi i servizi
candidati
D. Rosaci
SOA
23
Esempio di goal-service
model
D. Rosaci
SOA
24
3-Sub-system analysis
• Dopo aver completato i due step precedenti, abbiamo un’idea
delle aree funzionali di cui si compone il nostro business
domain
• Adesso vogliamo muoverci verso decisioni di “design” e
architetturali
• La sub system analysis raffina i business use cases in system
use cases che supportano un dato processo di business
• Durante questa analisi i componenti “business” e tecnici sono
identificati come segue:
D. Rosaci
SOA
25
Sub-system analysis
• Si analizza il flusso di processo del sottosistema (spesso una
sequenza di use case) per scoprire/identificare dei componenti
business “candidati”
• Si utilizzano requisiti non funzionali per identificare
componenti tecniche
• Si identificano le funzionalità richieste per ogni componente
business, cioè gli use cases a livello di sistema che il
componente deve supportare
• Nel nostro scenario di esempio, i quattro sottosistemi
identificati sono Retailer, Warehouce, Manifacturer e Logging
Facility
• Ognuno di questi sottosistemi espone un insieme di servizi
business
D. Rosaci
SOA
26
Sub-system analysis
D. Rosaci
SOA
27
Sub-system analysis
• Nell’esempio del sottosistema Retailer, dopo il passo del goalservice model, il business use case “Purchase Goods” è stato
decomposto nei servizi “Get Catalog” e “Submit Order”
• Ogni sottosistema sfrutta componenti business e tecniche per
realizzare lo use case associato e supportare i servizi
business esposti, come ad esempio “Submit Order”
D. Rosaci
SOA
28
Esempio di risultato
dell’analisi
• Dopo aver completato l’analisi, individuiamo le seguenti
componenti a grana grossa che saranno implementate come
servizi:
• Retailer Service fornisce le funzionalità di accedere al
catalogo prodotti e di emettere un ordine
• Warehouse Service supporta la consegna dei prodotti
ordinati e aggiorna l’iventario del magazzino. Quando
l’inventario scende sotto una certa soglia, esso sottometterà
un Purchase Order (PO) al Manufacturer
• Warehouse Callback Service riceve una notifica dal
manufacturer che il PO è stato processato.
D. Rosaci
SOA
29
Esempio di risultato
dell’analisi
• Manufacturer Service accetta sottomissioni di PO e inizia il
processo di manifattura.
• Logging Service registra gli eventi che accadono e supporta
la ricerca di eventi nel registro degli eventi
• E’ a questo punto che I servizi a grana grossa possono essere
composti in un’orchestration. Tools di flow-modeling come IBM
WebSphere Business Integration possono essere utilizzati a
questo punto.
D. Rosaci
SOA
30
Usare Application Patterns
• Gli application patterns aiutano a strutturare i servizi business
e tecnici.
• In questa soluzione semplificata, mostriamo i cinque servizi
essenziali al business
–
–
–
–
–
Retailer service
Warehouse service
Warehouse callback service
Logging facility service
Manifacturer service
Tra i servizi interni all’impresa, si userà un Direct Connection pattern, il più
semplice tipo di interazione 1:1, che permette ad un consumer e ad un
provider di comunicare direttamente. Per esempio, quando un customer
sottomette un ordine, il Retailer Service manderà un messaggio al
Warehouse Service per richiedere l’evazione dell’ordine
D. Rosaci
SOA
31
Usare Application Patterns
•
•
Il pattern Exposed Router è applicato per la necessità del Warehouse di dover
sottomettere un ordine al Manifacturer. Questo pattern si applica a soluzioni in
cui un’applicazione source inizia un’interazione con una o più applicazioni
target
Il pattern Exposed Direct Connection è utilizzato pedr il Warehouse Callback
Service. Questo pattern in genere si utlizza per i servizi che possono essere
invocati dall’esterno dell’impresa, da entità esterne come, in questo caso, il
Manifacturer.
D. Rosaci
SOA
32
Usare Application Patterns
D. Rosaci
SOA
33
4-Service allocation
• Dopo aver identificato i servizi tramite una combinazione di
domain decomposition e goal-service modeling, adesso
vogliamo assicurarci che ogni servizio abbia un corretto
“posizionamento”
• La service allocation si chiede quali componenti forniranno un
dato servizio ed il suo management
• I consumers vogliono la flessibilità di poter rimpiazzare
un’implementazione sulla base di nuovi requisiti funzionali,
non funzionali o economici
• D’altra parte i providers vogliono poter implementare le
interfacce sulla base di componenti esistenti
D. Rosaci
SOA
34
Service allocation
D. Rosaci
SOA
35
5-Component Specification
• Con l’analisi di sottosistema, abbiamo identificato le interfacce
dei sottosistemi, i system use cases ed i technical use case, le
loro iterdipendenze e il loro flusso
• Con la service allocation abbiamo identificato quali
componenti implementano ogni servizio
• Con la component specification per ogni componente occorre
specificare le proprietà e le regole che devono soddisfare
D. Rosaci
SOA
36
Component Specification
D. Rosaci
SOA
37
Patterns per strutturare
componenti e servizi
• Possiamo usare i runtime patterns per stabilire la struttura
middleware necessaria a supportare i servizi identificati
• Quindi possiamo assegnare ogni servizio ad un nodo
middleware
D. Rosaci
SOA
38
6-Applicare i runtime patterns
D. Rosaci
SOA
39
Es. di applicazione dei
runtime patterns
• Tre distinti runtime patterns
• Per l’interazione U2B, abbiamo la variazione 1 dello Stand
Alone Single Channel runtime pattern. Questa variazione usa
un Web Server redirector che contiene un Web server ed un
Application server, che splitta le funzioni di application server
su due macchine. L’application server risiede nella rete
interna, per ragioni di sicurezza, e il suo nodo realizzerà sia la
logica di presentazione che di business
• Il Web server fornisce pagine statiche, ed un Web server
redirector è usato per forwardare le richieste dal Web server
all’application server
D. Rosaci
SOA
40
Es. di runtime patterns
• Per l’interazione tra i servizi interni all’organizzazione, è
utilizzato il Direct Connection runtime pattern. I connettori
forniscono la connettività tra due componenti
• L’Exposed Direct Connection runtime pattern fornisce la
connettività per i servizi esterni al logging facilitator
• Per l’interazione B2B, è utilizzata la variazione Router
dell’Exposed Broker runtime pattern. Il router può operare il
routing intelligente verso un servizio target alla volta.
• Queste sono solo alcune tra le alternative possibili
D. Rosaci
SOA
41
7-Technology realization
mapping
• Adesso occorre specificare l’implementazione delle
componenti dei servizi
• Possiamo utilizzare materiale già esistente, o acquistarne di
nuovo
• In generale, le alternative sono le seguenti:
• Costruire nuove funzionalità su software esistente.
• Trasformare vecchi sistemi per riusarne le funzionalità in
forma di servizi
• Integrare sistemi legacy
• Comprare e integrare prodotti di terze parti
• Usare parzialmente risorse esterne, specialmente via Web
services
D. Rosaci
SOA
42
Applicare il Product Mapping
D. Rosaci
SOA
43
Applicare il product mapping
D. Rosaci
SOA
44
Scarica

Modulo 4: SOA - Domenico Rosaci