...

SOA in Unicredit

by user

on
Category: Documents
575

views

Report

Comments

Transcript

SOA in Unicredit
SOA in Unicredit
Architettura di riferimento per
lo sviluppo di applicazioni in
U.G.I.S.
Milano, 10 ottobre 2006
SOA in Unicredit - Indice
ƒ
ƒ
ƒ
ƒ
ƒ
Introduzione
Concetti
ƒ
ƒ
Ambiente di sviluppo
Prodotti & Standard Tecnologici
Caratteristiche
Linee guida architetturali
ƒ Descrizione degli strati logici
ƒ Applicazione
ƒ Caratteristiche dello strato di Presentation
ƒ Caratteristiche dello strato di Business
ƒ Caratteristiche dello strato di Integration
ƒ Architettura Open di applicazioni distribuite
Interazioni
2
SOA in Unicredit - Introduzione
ƒ
In U.G.I.S. è stato individuato nella SOA un insieme di
concetti unificanti per mettere gli sviluppatori di applicazioni
web nelle condizioni di poter avere dei riferimenti chiari,
anche se non esaustivi, in termini di architettura ed anche di
ambiente di sviluppo.
ƒ
E’ stato un momento di condivisione di linee guida per evitare
che, nel dubbio o nella necessità di sviluppare nuove
applicazioni in tempi rapidi, si imboccassero strade non in
grado di garantire scalabilità ed indipendenza dalla
piattaforma.
ƒ
Lo sforzo ha permesso di convertire rapidamente competenze
pregresse (COBOL) sulle nuove tecnologie emergenti.
3
SOA in Unicredit - Concetti
ƒ
Un framework è un insieme di componenti software, di processi di progettazione e di scrittura del
software predefiniti e standardizzati
ƒ
Utilizzando un framework comune per tutte le applicazioni è possibile ricomporre e riutilizzare
componenti o servizi creati da altri sviluppatori per altre applicazioni
ƒ
Fornisce un aiuto e una guida per chi progetta e sviluppa applicazioni web, sia per la possibilità di
utilizzare componenti prefabbricate che per la possibilità di utilizzare metodologie già sperimentate
con risultati determinati.
ƒ
Esempio:
Dovendo creare un’applicazione di conti correnti che permetta ad un operatore di aprire un conto, il
progettista e/o lo sviluppatore può riutilizzare i servizi dell’applicazione anagrafe creati dallo
sviluppatore di quel dominio.
2
SOA in Unicredit – Prodotti & Standard Tecnologici(1/2)
Definizione:
XFrame è un “framework” basato su standard di mercato come
Struts in quanto implementazione (del progetto Jakarta) del
paradigma Model View Controller, specifiche J2EE, etc.; ciò a
garantire supporto in termini di metodologie e processi per lo
sviluppo di applicazioni enterprise.
Prodotti:
• Hardware: IBM AIX or equivalent platform;
• Application Server: IBM WebSphere 5.1;
• Database: Oracle e DB2.
Standard:
• Specifiche SUN J2EE;
• Design-pattern;
• Architettura con disaccoppiamento
Business, Integration, Data.
a quattro livelli: Presentation,
4
SOA in Unicredit – Prodotti & Standard Tecnologici :
Architetture Enterprise: J2EE vs .NET
(2/2)
ƒ
Il byte-code Java è cross-platform, .NET no.
ƒ
Lo standard J2EE è nato da una comunità, mentre .NET è il risultato di una
azienda che al momento offre soluzioni proprietarie legate ad un sistema
operativo.
ƒ
Oggi, sviluppando soluzioni J2EE è possibile scegliere un prodotto fra una
vasta gamma di offerte provenienti da compagnie in competizione fra di loro;
in .NET il solo riferimento per i prodotti è Microsoft.
ƒ
Java è un prodotto che è maturato negli anni; abbiamo molte garanzie sulla
affidabilità delle soluzioni J2EE.
ƒ
I vendors J2EE, in confronto a Microsoft, hanno un’esperienza consolidata sul
versante dei server, perciò offrono più garanzie di scalabilità e robustezza sui
grandi numeri.
ƒ
Per quanto concerne i client (FAT), invece, non ci sono preferenze particolari.
5
SOA in Unicredit – Caratteristiche
(1/2)
ƒ
(SOA) Service Oriented Architecture
ƒ
Accesso ai servizi da differenti tipi di client
ƒ
Sviluppo “amichevole”
ƒ
Deploy
ƒ
Riuso dei servizi
ƒ
ƒ
ƒ
ƒ
ƒ
L’accesso alla Business Logic avviene attraverso servizi implementati
come metodi di Enterprise Java Beans (EJB).
Struts presentation, Mainframe, Soap client generici, la stessa Business
Logic.
Le implementazioni strutturali di XFrame non sono a carico degli
sviluppatori.
Uso di plugins per lo sviluppo guidato e sicuro delle applicazioni.
Integrazione modulare di strumenti di supporto allo sviluppo (repository,
…).
ƒ
ƒ
ƒ
Automatico (uso di script e batch pilotabili).
Modularità (un EAR per ogni applicazione).
Uso di shared libraries
ƒ
Ogni applicazioni può riusare i servizi sviluppati per un’altra applicazione.
6
SOA in Unicredit – Caratteristiche
(2/2)
ƒ
Informazioni condivisibili tra applicazioni diverse
ƒ
Sicurezza e controllo degli accessi
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Le informazioni di sessione sono gestibili come servizi pubblici dal
cosiddetto Global Session Manager (GSM).
Al GSM si accede attraverso i meccanismi RMI (EJB), SOAP (http) e JMS.
Lo User Registy di WebSphere può gestire l’autenticazione sui supporti
LDAP.
Uso dei Passticket per la schedulazione sicura delle transazioni host; si
evita in tal modo di far viaggiare credenziali di autenticazione attraverso
il sistema.
Ruoli di sicurezza J2EE, associati ai gruppi LDAP durante il deploy.
Dopo la fase di autenticazione (login), la session ID (per i client http) o
le credenziali di accesso (per i client non http) sono gestite dal sistema.
ƒ
Internationalization (i18n)
ƒ
Scalabilità
ƒ
ƒ
Consente il riuso delle logiche applicative per diverse localizzazioni.
L’architettura si scala facilmente per far fronte agli aumenti di carico.
7
SOA in Unicredit – Linee Guida Architetturali
Descrizione degli strati logici
(1/11)
XFrame splitta le componenti applicative su quattro strati logici:
•
•
•
•
Presentation
Business
Integration
Data
Il disaccoppiamento logico permette:
9 Scelta di standard di mercato
9 Coabitazione di differenti tecnologie
9 Disegno e sviluppo modulare delle applicazioni
8
SOA in Unicredit - Linee Guida Architetturali
Descrizione degli strati logici : architettura
PRESENTATION LAYER
MainFrame
PORTAL ENGINE
J2EE
(Portlet)
APPLICATION CONTENTS
J2EE
(Struts - MVC)
BUSINESS LAYER
(2/11)
http Client
(Browser)
altri Client
J2EE
(Web Services - EJB)
INTEGRATION LAYER
J2EE
(JMS - JCA)
SOAP Client
DATA LAYER
RDBMS
MainFrame
9
SOA in Unicredit - Linee Guida Architetturali
Applicazione
ƒ
Struttura J2EE Compliant
ƒ
XA-<APPL>
(3/11)
EAR module
ƒ
ƒ
ƒ
ƒ
XA-<APPL>-BF
EJB module, Business Framework
XA-<APPL>-BFCL
EJB Jar Client, Business Framework Client
XA-<APPL>-PF
WAR module, Presentation Framework
XA-<APPL>-WS
WAR module, espone i WSDL
10
SOA in Unicredit - Linee Guida Architetturali
Applicazione: caratteristiche applicative
ƒ
ƒ
ƒ
(4/11)
Progetti delle Shared Libraries
ƒ XL-ENV: Environment library
ƒ XL-GLB: Global library
Packages
ƒ
ƒ
ƒ
it.usi.xframe.<appl>.bfimpl (bfimpl = business framework
implementation)
it.usi.xframe.<appl>.bfintf (bfintf = business framework interfaces)
it.usi.xframe.<appl>.bfutil (bfutil = business framework utilities)
Service Façade Classes
ƒ
ƒ
ƒ
ƒ
ƒ
Session ejb remote interface: estende la I<Appl>ServiceFacade
interface
L’Interface I<Appl>ServiceFacade espone i metodi per la creazione, il
recupero e la cancellazione dei dati di sessione
Session ejb class: estende la <Appl>ServiceFacade class
<Appl>ServiceFacade class: implementa la I<Appl>ServiceFacade
interface e contiene l’implementazione dei suoi metodi
<Appl>ServiceFactory class:genera il client proxy alla
<Appl>ServiceFacade
11
SOA in Unicredit - Linee Guida Architetturali
Caratteristiche dello strato di Presentation
ƒ
Lo strato di Presentation è basato sul design pattern MVC (ModelView-Controller).
ƒ
ƒ
(5/11)
Nel paradigma MVC l’input dell’utente, il modello del mondo esterno ed il
ritorno visuale all’utente (rendering), sono esplicitamente separati e
gestiti da tre tipi di oggetti.
Lo strato di Presentation utilizza il framework Struts e le JSTL (Java
Standard Tag Library).
ƒ
Struts risolve i più comuni problemi di sviluppo di applicazioni Web. E’ un
prodotto open-source distribuito dalla Apache Software Foundation.
Foundation I
tags nelle Struts Tag Libraries costituiscono un ponte fra una JSP view e
le altre componenti di una applicazione Web. Le Tiles offrono un
framework versatile e robusto per assemblare pagine di presentazione
col meccanismo dell’ereditarietà. Ciò rende più facile modificare e
modularizzare il look and feel di un sito Web.
ƒ
Le JSTL incapsulano in semplici tag la funzionalità centrale comune a
molte applicazioni Web. Le JSTL offrono supporto per task strutturali
come iterazioni e costrutti condizionali, tag per la manipolazione di
documenti XML, tag per l’internazionalizzazione ecc..
12
SOA in Unicredit - Linee Guida Architetturali
Caratteristiche dello strato di Presentation: i18n
ƒ
(6/11)
Internationalization (i18n)
ƒ
Le caratteristiche dello strato di Presentation consentono di
risolvere i problemi dell’internazionalizzazione. Ci sono almeno
tre ordini di problemi in rapporto alla localizzazione delle
richieste:
ƒ La mera traduzione;
ƒ La formattazione dei layout delle pagine;
ƒ La riformulazione dei controlli per i campi di input
Si utilizza lo Unicode (UTF-8) charset encoding per gestire tutti i
possibili caratteri usati nelle diverse lingue.
13
SOA in Unicredit - Linee Guida Architetturali
Caratteristiche dello strato di Business
(7/11)
ƒ
Lo strato di Business consente il disaccoppiamento tra la logica di
presentazione ed il modello di business. Controlla la logica di servizi
di business complessi, composti da uno o più servizi atomici.
L’implementazione tecnica di questo strato è basata su EJB di tipo
session e stateless.
ƒ
I metodi del bean sono esposti da una façade comune come entry
point alla logica di business. Possono essere esposti in interfacce
WSDL completamente disaccoppiate e sono accedibili come Web
Services attraverso il protocollo SOAP su una Web Application
dedicata.
ƒ
I WSDL permettono ai FAT client esterni di chiamare Web Services
attarverso il protocollo SOAP senza interagire con lo strato di
Presentation.
14
SOA in Unicredit - Linee Guida Architetturali
(8/11)
Caratteristiche dello strato di Business: struttura della logica di Business
Integration Layer
Beans
EJB Facade
EJB Facade
EJB Facade
App. 1
App. 2
App. 3
Business Layer
Business Services access
point
Strato pubblico (Web application) per l’esposizione di Web Services
15
SOA in Unicredit - Linee Guida Architetturali
Caratteristiche dello strato di Integration
(9/11)
ƒ
Lo strato di Integration disaccoppia la logica di business dai
protocolli e dai canali usati per raggiungere la logica di business
remota (da distinguere rispetto a quella distribuita).
ƒ
Tipicamente un servizio di business può invocare uno o più services
remoti o sui sistemi legacy.
ƒ
I protocolli ed i canali sono componenti indipendenti assemblate da
un coordinatore (Provider).
ƒ
I file XML descrittori di servizio configurano i servizi in termini di
protocollo, canale ed algoritmo di trasformazione (se necessario).
ƒ
I risultati provenienti dal service provider sono trasformati in
formato XML.
ƒ
L’XML può essere automaticamente trasformato in una gerarchia di
bean (Model).
ƒ
I dettagli sull’integrazione con i DBMS ed i TP monitors sono
incapsulati in un paradigma J2EE detto JCA (Java Connection
Architecture) attraverso astrazioni note come data sources e
connectors.
16
SOA in Unicredit - Linee Guida Architetturali
Caratteristiche dello strato di Integration: Online Integration
ƒ
(10/11)
Accesso On-line ai sistemi legacy:
l’ Integration Framework di XFrame disaccoppia la business logic dai dettagli
specifici del mondo legacy
La funzionalità del
mondo legacy è resa
disponibile alla
presentation dei
client esterni
attraverso il
protocollo standard
SOAP
JSP
Presentation
Layer
SOAP
EJB
Business
Layer
Integration Layer
I protocolli
proprietari del
mondo legacy
(per esempio
Gauss) sono
incapsulati e
nascosti
Provider
protocol
SERVICE PROVIDER
ESTERNI
channel
LEGACY SYSTEM
17
SOA in Unicredit - Linee Guida Architetturali
Architettura Open di applicazioni distribuite
Web Server
P
TT
H
http Client
(Browser)
Lb
Lb
Legacy
services
request
Web Server
Lb
Lb
Altri Service
Providers
Legacy Services
AP
XM
LSO
(11/11)
MQ/CICS/IMS/…
Web Server
firewall
firewall
SOAP Client
Data
DB
Repository
LDAP
Repository
18
SOA in Unicredit – Ambiente di Sviluppo
L’ambiente di sviluppo per applicazioni XFrame è basato su
paradigmi che definiscono:
ƒ
Standards e Linee Guida:
ƒ
Tools di supporto allo sviluppo:
ƒ
La metodologia di ingegnerizzazione del software:
ƒ
Tools di supporto al deploy:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Linee Guida per lo sviluppo dello strato di Presentation basate su
Struts
Linee Guida per lo sviluppo dello strato di Business attraverso EJB
Linee Guida per lo sviluppo dello strato di Integration usando
connectors e resource adapters
IBM WebSphere Studio Application Developer (WSAD)
Merant PVCS Version Manager
Plugins
E’ basata su UML
Un Tool di modellizzazione come XDE
Un Tool di application mining come Cast
IBM Websphere Application Server (WAS)
Un generatore automatico di baseline come Gandalf che lancia anche
i processi di deployment e notifica automatici
21
SOA in Unicredit – Interazioni
Integrazione modulare in XFrame
ƒ
(1/4)
XFrame è integrato con altri sistemi
cooperanti in una modalità
modulare: può interagire con essi
senza per questo essere
inamovibile
22
SOA in Unicredit – Interazioni
WSAD & XDE
ƒ
WSAD (WebSphere Studio Application
Developer)
ƒ
ƒ
(2/4)
IDE (Integrated Development Environment)
& RAD (Rapid Application Development)
development tools
XDE
ƒ
UML modeling tool che aiuta gli sviluppatori
a disegnare le applicazioni
23
SOA in Unicredit – Interazioni
PVCS, WebSphere and Cast
ƒ
PVCS
ƒ
ƒ
Change and version manager tool.
WebSphere
ƒ
ƒ
(3/4)
Application Server che consente di far
girare un’applicazione in ambienti
distribuiti.
Cast
ƒ
Application mining tool che permette di
estrarre dal software le metriche in
termini di indici di coesione e
complessità ciclomatica; produce
inoltre un’analisi d’impatto per la
reingegnerizzazione delle applicazioni.
24
SOA in Unicredit – Interazioni
(4/4)
Gandalf: Automatic baseline generation - distribution – lifecycle
Generazione di
Baseline
Sviluppatori
PVCS
Generated
IT
Deployment in
Ambiente di
Validazione
IT
Validated
Sviluppatori
Xframe
Validazione
Funzionale
Refused
Sviluppatori
Deployment in
Ambiente di
Produzione
25
IT
Validated
IT
Production
SOA in Unicredit
Architettura di riferimento per
lo sviluppo di applicazioni in
U.G.I.S.
Fine della presentazione
Fly UP