Comments
Description
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