P28-29 5-03-2007 10:27 Pagina 28 Prodotti & Soluzioni Con IBM WebSphere ESB, proiettati nel futuro delle SOA, con un occhio al passato li ESB aiutano a massimizzare la flessibilità delle SOA. I vari componenti che interagiscono in modo finalizzato all’erogazione dei servizi all’interno delle SOA lo fanno proprio passando attraverso un ESB e non collegandosi direttamente l’uno con l’altro. Quando chi richiede un servizio si rivolge all’ESB, quest’ultimo si assume il compito di soddisfarne le richieste inviando opportuni messaggi, ai fornitori di servizi in grado di svolgere le operazioni necessarie, rispettando i livelli di qualità prestabiliti. Gli ESB facilitano il lavoro dei fornitori e dei fruitori dei servizi risolvendo le varie incompatibilità a livello di protocolli, tipologie di interazione, funzioni dei servizi. Gli ESB offrono inoltre le funzioni di monitoring, gestione degli ambienti operativi e virtualizzazione delle risorse intervenendo su: • Provenienze e identità: non è necessario che le componenti che concorrono alla creazione dei vari servizi sappiano da dove vengano o quali siano gli altri elementi con i quali interagiscono, salvo riconoscerne le interfacce ed i contenuti da interscambiarsi. Questo vuol dire, ad esempio, che i fornitori dei servizi possono rimanere sconosciuti, così come possono essere sostituiti anche in modo dinamico. • Protocolli d’interazione: all’interno dei servizi si possono usare svariati protocolli di comunicazione e stili d’interazione. Una richiesta espressa in formato SOAP e trasferita via HTTP può essere soddisfatta anche da servi- G 28 ToolNews 3/2007 zi che operano usando SAOP su Java Message Service (JMS). • Interfacce: clienti e fornitori dei servizi possono usare anche interfacce diverse. Gi ESB sono in grado di supplire alle eventuali differenze trasformando le richieste e le risposte in formati comprensibili da parte dei destinatari. • Qualità nelle interazioni tra i servizi: i gestori dei sistemi possono dichiarare le loro esigenze in termini di qualità dei servizi, comprendendovi elementi quali il rilascio delle autorizzazioni per l’esecuzione dei servizi, la cifratura e la decifratura dei messaggi, l’attivazione di verifiche automatiche sulle interazioni tra i servizi ed in base a quali criteri debbono esser trattate le loro richieste. Interporre un ESB tra i vari elementi che compongono i servizi permette di modularne le interazioni attraverso quello che viene chiamato il mediatior. L’opera di mediazione viene eseguita sui messaggi in transito tra richiedenti e fornitori di servizi. Se le interazioni sono complesse, tali mediazioni possono essere concatenate in modo sequenziale. WebSphere ESB e Integration Developer Nell’ambito dell’infrastruttura di IBM per le SOA, le funzioni di ESB vengono assolte da WebSphere ESB che è in grado di semplificare l’integrazione End-to-end tra i servizi usando diversi protocolli e meccanismi di trasporto quali SOAP su HTTP, SOAP su JMS o JMS con adattatori JCA (J2EE Connector Architect), supportando le funzioni di mediation tra i più diversi End-point in capo ai quali si possono effettuare operazioni di trasformazione, registrazione e reindirizzamento dei messaggi. Le mediation vengono create e assemblate con altri componenti in soluzioni SCA, attraverso l’uso di IBM WebSphere Integration Developer, prodotto finalizzato alle attività di sviluppo capace di sfruttare al meglio le componenti di mediation inserite all’interno di WebSphere ESB e fornendo una consistente serie di adattatori con i quali si possono coprire gran parte delle applicazioni presenti sul mercato. Messaging, Web Services e SOA WebSphere ESB supporta le interazioni End-to-end tra i servizi operando a tre livelli: connettività su larga scala, ampia gamma di modalità di interazione e di controllo della qualità, consistenti funzioni di mediation. Il prodotto supporta la connettività tra i vari punti terminali consentendo di usare diversi protocolli e API (Application Programming Interfaces), ivi inclusi JMS versione 1.1 implementato nella piattaforma di messaging di WebSphere e in WebSphere MQ, SOAP su HTTP Secure (HTTPS) e SOAP su JMS. Essendo stato sviluppato a partire da WebSphere Application Server, WebSphere ESB assicura totale interoperabilità con gli altri prodotti della famiglia WebSphere, tra cui WebSphere MQ e IBM WebSphere Message Broker. Con la nuova versione 6.0.2, P28-29 5-03-2007 10:28 Pagina 29 Prodotti & Soluzioni WebSphere ESB offre un notevole incremento nelle prestazioni per quanto riguarda la connettività e supporta i modo nativo i collegamenti con WebSphere MQ Message Broker che di conseguenza risultano molto più semplice e veloci che nel passato. WebSphere ESB può anche utilizzare le soluzioni di IBM WebSphere Adapter per sfruttare le applicazioni esistenti così come per catturare gli eventi di Business che occorrono sul sistema. Con WebSphere Integration Developer, è possibile accedere a quattro Technology Adapter (eMail, FTP [File Transfer Protocol], Flat File e JDBC [Java Database Connectivity]) per lo sviluppo ed il rilascio di nuove soluzioni, così come ad altri quattro adattatori JCA per applicazioni ERP quali SAP, PeopleSoft, Oracle EBusiness e JD Edwards. Le interfacce Client incluse nel software WebSphere ESB ne ampliano ulteriormente la connettività. I Client per i messaggi C++ e Microsoft.NET permettono alle applicazioni non-Java di connettersi a WebSphere ESB usando API simili a quelle per JMS. Il Client C++ per i Web Services è simile alle API Java per le RPC (Remote Procedure Call) XML (JAX-RPC) e permette agli utenti di connettersi ai Web Services collocati su WebSphere Application Server direttamente dall’interno degli ambienti C++. Sempre a livello connettività, è possibile realizzare le conversioni di base tra i protocolli usati dagli utenti dei servizi e dai loro fornitori. Websphere ESB supporta i più moderni standard dei Web Services (tra gli altri, WS-Security e WS-Atomic Transactions), e un’ampia gamma di meccanismi di interazione, a partire dalle forme Request-Reply, per arrivare al Publish-Subscribe, passando per quelle Point-to-Point. Il prodotto include anche Universal Description, Discovery and Integration (UDDI) Versione 3.0 che può essere usato per pubblicare e gestire i Metadati relativi ai punti terminali dei servizi mettendoli a disposizione delle varie applicazioni attivabili dai Client. Gli integratori di applicazioni possono interagire con UDDI per localizzare ed accedere alle interfacce degli elementi di loro interesse nel corso dello sviluppo dei moduli di mediation. WebSphere ESB supporta anche IBM WebSphere Service Registry e Repository. In particolare, le primitive di individuazione dinamica degli End-point consentono di individuare le informazioni relative ai servizi e di procedere nella loro interconnessione senza dover ToolNews 3/2007 29 P28-29 5-03-2007 10:28 Pagina 30 Prodotti & Soluzioni intervenire a livello di programmazione o rilascio di nuove componenti.Infine, WebSphere ESB supporta la mediazione delle interazioni tra servizi anche oltre il semplice transcoding dei protocolli svolto dalle funzioni di connettività. Grazie a questo, si possono effettuare le integrazioni a livello logico direttamente nell’ESB senza dover operare necessariamente a livello di Endpoint. Le capacità di mediation di WebSphere ESB comprendono anche il supporto dei contesti e di altre condizioni per il routing o la trasformazione dei messaggi. Creare e gestire soluzioni basate su ESB con Integration Developer Uno dei modi migliori di apprezzare le capacità di mediazione di WebSphere ESB è analizzare come il prodotto consente agli utenti di creare e gestire le soluzioni basate su di esso. A tal fine, IBM ha introdotto due ruoli incaricati di creare e gestire le soluzioni basate su ESB: • Lo sviluppatore di integrazioni che utilizza gli strumenti e le funzioni dell’ESB per definire i servizi nel loro insieme e creare la logica che regola il modo in cui le richieste vengono inoltrate ai servizi. Chi ricopre questo ruolo deve comprendere la semantica dei servizi da integrare e focalizzarsi sulla creazione con WebSphere Integration Developer dei relativi moduli di mediation. • L’amministratore delle soluzioni che rende disponibili le nuove soluzioni SOA rilasciandone tutti i servizi che le compongono, compresi quelli di mediation che assicurano il corretto svolgimento delle interazioni tra i vari servizi. Le persone in questo ruolo sono in grado di interpretare i profili di integrazione dei vari processi dell’azienda ed il contesto nel quale debbono operare. Di conseguenza, talvolta intervengono a livello di configurazione per meglio adattare le soluzioni alle esigenze rilevate attraverso le funzioni di monitoraggio delle Console di 30 ToolNews 3/2007 gestione di WebSphere ESB e di WebSphere Application Server. Lo sviluppatore di integrazioni utilizza WebSphere Integration Developer per creare i moduli di madiazione che specificano gli End-point da integrare, le modalità con le quali procedere ed i protocolli di connessione da impiegare. Le elaborazioni da svolgere per processare i messaggi lungo il loro percorso vengono definite sfruttando le primitive di mediazione messe a disposizione direttamente dal prodotto. Lo sviluppatore di integrazioni personalizza le primitive, per esempio indicando il nome dei Database all’interno del quale svolgere una ricerca o fornendo un proprio XSL Style Sheet. La configurazione di queste funzioni non richiede alcuna programmazione. WebSphere Integration Developer è progettato per mascherare la complessità di WSDL, XML Schema, XPath e XSLT, per cui, per creare soluzioni SOA non occorre che gli sviluppatori abbiano alcuna competenza specifica in questi ambienti. Se le primitive predefinite non soddisfano le esigenze, gli sviluppatori ne possono creare di proprie operando direttamente in Java o sfruttando l’ambiente visuale messo a loro disposizione. A tale scopo sono disponibili i modelli SCA e SDO, delle API specifiche e le apposite funzionalità di System Programming Interface. Se l’integrazione segue il paradigma Request-response, tanto in modalità sincrona quanto asincrona, gli sviluppatori possono creare un flusso con le risposte delle mediazioni utilizzando le stesse capacità di WebSphere Integration Developer impiegate in precedenza. Infine, grazie al Debugger visuale gli sviluppatori sono in grado di intervenire nella messa a punto dei programmi di integrazione inserendovi Breakpoint, procedendo passo passo o verificando il contenuto delle diverse variabili lungo l’interno processo di mediazione. Rilasciare e gestire i moduli di mediazione I moduli di mediazione vengono rilasciati utilizzando un apposito Tool di WebSphere ESB. Dato che l’amministrazione di WebSphere ESB viene fatta attraverso la Console di WebSphere Application Server, i due ambienti risultano gestibili in modo integrato usando sempre lo stesso tipo di interfaccia. In ogni caso, gli amministratori di sistema possono decidere di attivare dei filtri che limitano le aree di intervento unicamente a quelle rilevanti o connesse al ruolo e alle responsabilità dei singoli operatori. I moduli di mediazione condividono varie funzioni con altri prodotti della famiglie WebSphere, mentre le loro prestazioni possono essere gestite attraverso il componente IBM Tivoli Performance Monitor posto all’interno di WebSphere ESB. Rimanendo sempre nello stesso ambito, i servizi e le mediazioni realizzate attraverso connessioni di Web Services possono esser monitorate tramite IBM Tivoli Composite Application Manager for SOA che è in grado di tracciare i flussi dei messaggi che passano per l’ESB, misurandone i tempi di risposta ed attivando degli appositi allarmi nel caso questi non rispettino i livelli prestabiliti. Occhio al passato Una lezione appresa in decine di anni di esperienza è che fino a quando funzionano in modo più o meno decente, le vecchie applicazioni non vengono mai sostituite. Di conseguenza, è importante che gli ESB siano in grado di eseguire le trasformazioni, il routing e l’interconnessione tra le applicazioni esistenti e quelle nuove. Per tale ragione, WebSphere ESB è stato dotato di un gran numero di adapter e di soluzioni con le quali è possibile coprire un’ampia gamma di protocolli e standard non solo proiettati nel futuro ma anche legati al passato.