Service Oriented Architecture Benefici per l’ICT e il Business Roma, 13 Gennaio 2009 Giovanni Peruggini [email protected] La Service Oriented Architecture La SOA (Service Oriented Architecture): • è una stategia IT • non è una tecnologia • viene da lontano • è destinata alle imprese • porta benefici • ha dei costi L'IT oggi nelle imprese IT oggi: un’infrastruttura ordinaria! IT oggi – tecnologie e standard IT: Le fasi storiche Prima fase: Centralità del dato Seconda fase: centralità dell’informazione (strutturata e non strutturata) Terza fase: centralità del processo Cosa l'ICT deve fare per il Business Supportare la crescita e il cambiamento del business Mettere a disposizione la migliore tecnologia nel modo più semplice e basandosi su standard l’esperienza dell’utente e la sua produttività riducendo la complessità percepita Migliorare Ridurre i costi, mitigare i rischi e aumentare la compliance (obblighi di legge, normative interne, etc.) IT: Evoluzione - Service Oriented Architecture - Grid Computing - Virtualizzazione - Middleware - DB - Standard IT e Tecnologie Hot Tecnologies Enterprise Application Server Web Services Platform Enterprise Portal Enterprise Service Bus Business Integration Business Process Mgmt. Identity Management Identity Provisioning Web Services Management Data Integration Enterprise Records Mgmt. Enterprise Content Mgmt. Quasi tutte sono legate alla SOA ! Enterprise Architecture & Service Oriented Architecture EA & SOA I termini della questione: - Enterprise Architecture (EA) - Services Oriented Enterprise (SOE) - Service Oriented Computing (SOC) - Service-Oriented Architecture (SOA) Enterprise Architecture Enterprise - organizzazione o parte di una organizzazione con obiettivi di business, budget, vincoli tecnologici e organizzativogestionali. Enterprise Architecture – Descrizione della struttura e del comportamento dei processi di business ed organizzativi, dei sistemi informativi di un’organizzazione in termini di obiettivi e direttive stategiche. Finalità dell'EA •Ottimizzare il Business delle imprese •Descrivere: • Architettura del Business • Struttura organizzativa • Architettura dei processi • Gestione delle prestazioni Dall’EA alla SOA Implementare l'EA = adottare la SOA Service Orientation (SO) Modello di progettazione dei processi di business come applicazioni composite realizzate da servizi cooperanti Service Oriented Enterprise (SOE) Enterprise che adotta la Service Orientation Service Oriented Computing (SOC) Paradigma computazionale basato su servizi (indipendenza, loose-coupling, interfacce standard) Approcci alla SOA: Top-Down – dalla SOE (SO) alla SOA Bottum-Up – dal SOC alla SOA Cos’è la SOA Service-Oriented Architecture (SOA) - strategia ICT che implementa funzioni di business orchestrando servizi autoconsistenti e riusabili che iteragiscono attraverso interfacce e contratti definiti. La SOA indirizza il riuso e l'agility agility = capacità di rispondere alle esigenze di business con soluzioni ICT rese disponibili in tempi e modi adeguati. Alla base della SOA vi sono i concetti del service-oriented computing. Parole chiave: processo, servizio, orchestrazione, componentizzazione, incapsulamento, standardizzazione delle interfacce, loosecoupling, SOA Anatomy Web Technology Wave 1 Web Client User Interface Client HTML+HTTP Web Presentation Logic External Application Business Logic Database Web Technology Wave 2 XML e WebServices User Interface Client Web HTML+HTTP Presentation Logic XML External Application Web Services Web Business Logic JDBC/SQL Database Web Technology Wave 3 Comprehensive SOA Service Presentation User Interface/Portal/Web 2.0 HTML+HTTP+WSRP+AJAX Service Orchestration Composite Business Process or Application Composite Business Process or Application BPEL BPEL WS Reliable Messaging + BPEL Service Construction Composite Service Composite Service Composite Service BPEL/Java BPEL/Java BPEL/Java WS Reliable Messaging - WS Security – WS Eventing Resources & Services WebServices WebServices WebServices Packaged Application Legacy Application Java Application WebServices/XML/SQL Content Database Comprehensive SOA La SOA che una strategia si traduce in termini IT in un' architettura applicativa e per l’integrazione basata su standard in grado di: - Rispondere alle esigenze del Business - Massimizzare il riuso nell'IT - Business Logic e processi cablati nelle applicazioni - Dati e Contenuti esistenti da proteggere - Ridurre i costi dell'IT (potenzialmente) Mettere in opera una SOA richiede: - un cambiamento culturale e organizzativo - implementare una robusta infrastruttura tecnologica che rende accessibili ed utilizzabili le tecnologie Mettere in opera una SOA Implementare una SOA richiede: •impiantare una infrastruttura complessa e affidabile tecnologica •cambiare l'organizzazione dell'impresa •aggiornare gli skill del personale Le infrastrutture SOA disponibili si basano sui Web Services ma usare i WS non significa avere implementato la SOA! La SOA e i Sistemi Informativi Develop Manage Collaborate Access Extend Collaborative Portals Business Analytics & Activity Management Business Process Orchestration Enterprise Services Infrastructure Grid Computing Infrastructure Application Components Process Components Data Components Anatomia di un'infrastruttura SOA BPA tools MANAGEMENT & Analyze Model & MONITORING Requirements Internet tools BAM ROUTING &Business ORCHESTRATION Events Analytics Monitoring Process Manager (BPEL) Human Workflow Native BPEL App Dev Framework Business Rules System GOVERNANCE Monitoring Web Services Manager Management DATA Enterprise SERVICES Service Bus & CONNECTIVITY Multi Protocol Adapters XSLT Transform ODI Routing B2B Apps DB Bulk ETL Partners Messaging Infrastructure Manager BI J2EE Application Server SES RFID Security Registry Discovery Policies Ciclo di vita di una SOA Integrate Orchestrate Develop Analyze Access Deploy Optimize Manage Secure Business Process Analysis Model & Analyze Requirements 1. Business Requirements Capture 2. Business Process Definition 3. Business Activity Mapping Enterprise Service Bus Connect & Route Routing QOS Transform Rules Service Component Architecture Infrastructure WSIF WSDL JCA JMS BAPI Business Process Manager (BPEL) Orchestrate & Transform 4. Optimize 1. Define 2. Deploy 3. Monitor Human Workflow Business Process Engines Clustering, Dehydration Business Process State – Audit Trail Business Activity Monitoring (BAM) Analyze & Optimize Cosa è e cosa fa un BAM ? Monitoraggio dell’andamento del Business Accedibile e interpretabile dagli utenti Strumentazione per analisi e ottimizzazione Web Services Manager Secure & Govern Performance Management Availability Management Security Management Event Management Policy Definition Web Services Manager Enterprise Service Bus WSIF WSDL JCA JMS BAPI Benefici della SOA Promesse della SOA La SOA offre sul piano tecnologico: • componentizzazione • Incapsulamento • separazione delle interfacce • loose-coupling La SOA permette di disporre di componenti-programma discreti e riusabili con input e output standard che possono essere utilizzati come building blocks per assemblare applicazioni. Benefici della SOA Le principali caratterisitiche esibite: abilitazione e supporto al riuso del software possibilità di combinare i servizi in più modi per comporre applicazioni che mappano processi (composizione) utilizzo di servizi loosely-coupled mediante interfacce standard Benefici della SOA Il riuso Il riuso di componenti permette di: Ridurre la ridondanza dei servizi esistenti Semplificare lo sviluppo del software Benefici della SOA Il riuso Approccio IT tradizionale - silos applicativi: stessa funzione replicata in più punti Approccio SOA – riuso dei servizi - un unico servizio da sviluppare/manutenere usato da più processi - nuovi processi ottenuti per composizione di servizi esistenti Benefici della SOA Il riuso Effetti Riduzione costi per nuovi sviluppi Riduzione costi manutenzione (evolutiva/correttiva) Riduzione rischi derivanti da: difettosità del codice discontinuità di servizio Aumento rapidità di risposta al business per: Modifiche dei processi esistenti Implementazione di nuovi processi Benefici della SOA Il riuso Benefici: Rapidità d'implementazione dei nuovi processi Riduzione dei costi di sviluppo, test e manutenzione Riduzione dei rischi legati a: difetti d'implementazione interruzione del servizio Benefici della SOA La composizione Combinare funzioni predefinite (servizi) realizzare diverse funzionalità (processi) per Superamento dal concetto di API Orchestrazione di servizi per via dichiarativa (BPEL) Indipendenza dal dove e come sono fatti i servizi (UDDI – WSDL) Infrastruttura di base con servizi e funzioni comuni Benefici della SOA La composizione Effetti Sviluppo e manutenzione software semplici e rapidi limitati a: Servizi di business Processi Alto livello di astrazione – catena di sviluppo più corta composizione servizi di business per via dichiarativa strumenti a supporto dell'analisi Benefici della SOA La composizione Benefici Maggiore rapidità di risposta alle esigenze e ai cambiamenti del business Riduzione dei costi di sviluppo e manutenzione Benefici della SOA Loose-coupling – std IF Standardizzazione delle interfacce dei servizi Indipendenza dalla: Localizzazione dei servizi Modalità d'implementazione (tecnologia, piattaforma hardware e software) Servizi come black-box indipendenti Benefici della SOA Il loose-coupling – std IF Effetti Localizzare/implementare nel modo più conveniente Fattori di scelta: Tecnologici (wrapping su piattaforma del legacy da integrare) Prestazionali (rete, ambiente – per es. algoritmi computingintesive su piattaforme HPC) Economici (costi delle piattaforme hardware e e software) Organizzativi (fusioni aziendali, responsabilità distinte) Minimizzazione effort per l'integrazione dei sistemi Meno software da sviluppare Disponibilità integration layer infrastrutturale Meno skill richiesti, meno tecnologie da dominare Deployment incrementale Implementazione graduale - Servizi di wrapping del legacy Benefici della SOA Il loose-coupling – std IF Effetti Integrazione di processi cross-enterprise Apertura dell'impresa all'esterno offerta di servizi a terzi Acquisizione di servizi da terzi Scelta tra approccio Make / Buy per il reperimento dei servizi mancanti Possibilità di acquistare da fornitori esterni: Software (codice da deployare in house) Servizi (acceduti quando serve via rete) Scelta approccio migliore puntuale (per servizio) Benefici della SOA Il loose-coupling – std IF Benefici Riduzione dei costi di sviluppo/manutenzione Ritorno degli investimenti rapido Aumento della velocità di risposta al business Aumento del grado di automazione dell'interazione tra imprese Aumento della qualità del servizio offerto al business Opportunità di business con la vendita di servizi Benefici della SOA I benefici in sintesi Rispondenza al Business Agility, risposta alle dinamiche di mercato Migliore efficienza dei processi Disponibilità delle risorse IT in base alle esigenze di business Efficienza dei Costi Riduzione dei costi di manutenzione Riduzione degli skill e dell'effort richiesti per supportare i cambiamenti del business Ottimizzazione del rapporto tra prezzo e prestazioni grazie alla libertà di scelta delle piattaforme, tecnologie, localizzazione dei servizi e delle modalità di approvviggionamento Riduzione del Rischio Innalzamento del livello qualitativo dell'IT Deployment incrementale Accelerazione dei tempi di ritorno degli investimenti Criticità della SOA Criticità della SOA Approcci Bottom-up Scenari: dai WS alla SOA dal SOC alla SOA Top-down Scenari: dall'EA alla SOE e alla SOA Dalla SOE alla SOA Dopo la fase bottom-up si procede ad una risistemazione con l'approccio top-down che serve a dare organicità e coerenza al tutto Criticità della SOA Infrastrutture tecnologiche per la SOA I Web Services sono una tecnologia utile e importante ma non bastano per fare una SOA Serve una infrastruttura tecnologica SOA per: Gestione e monitoraggio dei servizi e processi Messa in sicurezza dei servizi QoS: garantire e misurare prestazioni e disponibilità Orchestrazione dei servizi di business Accesso e trasformazione dei dati Comunicazione Criticità della SOA Tempi/Costi/Ritorni Criticità della SOA Diffusione della SOA Nel mondo vi sono già alcuni grandi progetti: •FEA – Organizzazioni governative U.S. •BCE (EA) •Governi europei (Francia, Germania,..) •Multinazionali (TELCO, Finance, Distribuzione) In Italia poche esperienze di rilievo: •Finance •TELCO •Enti •..... Criticità della SOA Strategia enterprise Strategia Enterprise non mera scelta tecnologica Approccio “giovane” (ma non vi è altra scelta) Costi iniziali elevati (IT, Organizzazione, Skill) Ritorni graduali Impatti organizzativi forti Benefici maggiori solo in caso di piena adozione