In 4ward abbiamo iniziato a sperimentare il futuro dell’integrazione “as a service” offerta da Microsoft con Windows Azure Service Bus EAI & EDI Labs. La piattaforma attualmente è nelle prime fasi di sviluppo, pertanto è poco stabile ma sembra avere tutte le potenzialità per diventare un ottimo prodotto che completi la piattaforma Windows Azure nella parte EAI ed EDI. Di seguito ho voluto dare una beve e sicuramente non esaustiva panormanica, focalizzandomi principalmente su “di cosa stiamo parlando” e su un naturale confronto con il mondo Biztalk.
Windows Azure Service Bus EAI è sostanzialmente composto da 3 componenti: EAI Bridges, Transforms e Service Bus Connect
EAI Bridges: si tratta un messsaging layer (come le pipeline BizTalk). Un bridge hosted in Windows Azure può praticamente solo ricevere messaggi XML via HTTP ed inviare l’XML output a HTTP endpoints, Service Bus Topics, Service Bus Queues e ad altri bridge. Attualmente non è possibile gestire nè in input nè in output flat file. I bridge sono composti da vari stages che consentono di fare: Protocol Bridging (per connttere due applicazioni che utilizzano protocolli differenti. Ad esempio da REST/POX –> SOAP), Structural Normalization or Data Contract Transformation, Message / Contract Validation (validazione tramitre xsd) e Content based routing (c’è una specie di promotion simile a quella di BizTalk).
Transforms: il visual XSLT mapping tool è molto simile al mapper di BizTalk. Le mappe sembrano però davvero migliorate. Vi sono dei nuovi funtoidi che dovrebbero rendere molto più semplice e veloci le trasformazioni. Ecco alcuni esempi:
– Tutte le operazioni aritmetiche sono state consolidate in un unico funtoide: (Arithmetic Expression)
– Finalmente hanno fatto il funtoide “If-Then-Else”
– Hanno aggiunto tutta una categoria di funtoidi per creare e manipolare le liste all’interno delle mappe
– Per la manipolazione delle date hanno aggiunto un funtoide “DateTime Reformat” che ti consente di cambiare il formato di una data senza dover fare troppi giri o scrivere del codice custom
Unico neo riscontrato è che sembra abbiano eliminato lo “Scripting functoid” che si utilizzava per scrivere codice custom all’interno delle mappe.
Service Bus Connect: Si tratta di un servizio basato sul Windows Azure Service Bus Relay Service e sul BizTalk Adapter Pack. Questo servizio è utilizzato per connettere le applicazioni cloud con: Oracle DB, Oracle EBS, SAP, Siebel, SQL. In pratica si creano da Visual Studio i LOB realys che consentono di accedere ai dati tramite Azure Service Bus endpoint.
Attualmente Windows Azure Service Bus EAI non ha nulla di specifico per il workflow management (tipo Orchestration). Ad ora si può utilizzare Windows Workflow Foundation nelle Windows Azure applications per la gestione di workflow complessi. Sembra che comunque questa parte verrà in futuro integrata.
In Visual Studio vengono installati una serie di tool e di template per la creazione e lo sviluppo di progetti EDI ed Enterprise Application Integration. Per quanto riguarda la parte EDI non ho ancora fatto delle prove specifiche, ma ad oggi lo standard EDIFACT non è supportato (è solo supportato solo l’X12). Quindi di fatto al momento la cosa non è utilizzabile in Europa.
Da un punto di vista puramente pratico, un problema che ho riscontrato è che ad ora non esiste nessun editor xml specifico. L’editor standard di Visual Studio è un po’ limitato per fare EAI basato su XML e trasformazioni, poichè non consente di fare editing avanzato (come l’editor di BizTalk). Oltretutto per creare gli schema bisogna scrivere il codice xsd a mano. Pare comunque che il team MS stia valutando la cosa anche in prospettiva dell’introduzione del più ampio scenario dei flat file!