Osservazioni su esb, web service framework e application server

Attualmente sono coinvolto in un progetto dove si lavora con web services e bpel. Nel tempo ho scoperto che la proliferazione di software open source benchè sia una ottima cosa deve fare i conti con gli standard che sono quelli a cui bisogna attenersi se si vuole cercare di raggiungere una certà interoperabilità.

In un precedente articolo avevo già accennato ai problemi di interoperabilità per quanto riguarda i file wsdl e che il consorzio WS-I propone degli strumenti per ridurre i rischi di interoperabilità. La leadership di WS-I è guidata da Michael Bechauf vicepresidente di SAP AG e partecipante alla board di Eclipse. Tra le altre compagnie figurano Microsoft, Fujitsu, HP, Sun, IBM, Intel, Oracle.

Ma i web services si appoggiano ai Web services framework e normalmente sono instradati da Esb e poi avrete bisogno di application server. Quali scegliere ? La risposta a questa domanda fa perdere molto tempo ed una guida è di sicuro è capire quali standard esistono e quali sono i software che si attengono.

Nel campo java questi standard si ottengono dalle implementazioni delle JSR. Per quanto riguarda i web service framework la JSR più importante è la JSR 224 che descrive JAX-WS un modo per realizzare data binding tra file wsdl e le classi java che realizzano i servizi.

JAX-WS è adottato da Apache CXF e Metro di Sun. Axis2 ha il supporto ma è venuto dopo nel tempo.

Nel campo degli esb le JSR importanti sono JSR 208 e JSR 312 che esprimono il concetto di JBI. JBI è uno standard imposto poichè in un bus possono essere attaccati diversi software che usano ad esempio JMS, eventi BPEL ecc. In questo ambito ritroviamo praticamente Apache ServiceMix e OpenESB di Sun. In pratica si appoggiano alla JSR 208 inseguendo la 312 che apporta le migliorie allo standard JBI.

Apache Synapse per quello che ho capito sta stringendo una collaborazione con quelli di ServiceMix per essere aiutati a raggiungere lo standard JBI.

Nel panorama degli application server si nota che ServiceMix ha un ottima integrazione con Apache Geronimo (completamente aderente a Java EE 5) mentre OpenESb e Metro si integrano facilmente con Glassfish che ovviamente Sun publicizza.

Tomcat è un semplice servlet container che si presta anche ed ha il vantaggio che rispetto agli altri, per la sua semplicità, risulta più veloce. Spesse volte quelli di Netbeans spiegano come usare Tomcat alternativamente a Glassfish.

Merita un discorso a parte JBoss. Per quelli di Jboss il loro stack è rappresentato da Jboss Native, Metro e CXF quindi una combinazione dei precedenti. Tuttavia loro rilasciano il loro esb e il loro application server. Vi faccio notare che Hibernate è condotto da quelli di Jboss.

Quindi fino a qui abbiamo visto Apache, Sun e Jboss con un piccolo zampino di IBM che fornisce supporto ad Apache Geronimo e ad Eclipse (CXF ha qualche plugin per Eclipse). Manca il tassello di BPEL.

Lo standard BPEL è stato sottomesso all’OASIS ed è denominato WS-BPEL. I più attivi questo campo sono stati Microsoft, IBM e BEA e SAP. Da quelli di Apache la risposta è Apache ODE sul cui sito è spiegato come usarlo con Tomcat e un JBI container, a caso, ServiceMix anche se dicono di avere dei problemi con quest’ultimo in quanto non proprio aderente allo standard JBI.

Con software come Intalio che si appoggiano su Apache ODE potete progettare i processi BPEL. Faccio notare che quelli di Intalio mostrano nel loro sito la collaborazione con quelli di ServiceMix e Mule Esb un esb che può essere usato con un web container come Tomcat o un application server come Geronimo e fa uso di un application framework come Apache CXF (qui un articolo sull’integrazione).

Quelli di Sun invece inglobano il BPEL service engine direttamente nel loro esb OpenEsb e potete progettare i vostri processi BPEL direttamente da Netbeans.

Eclipse ha poi il suo plugin STP che permette di progettare BPEL.

In tutto questo panorama si scorge l’esb Petals che insieme ad OpenEsb è certificato dai tool TCK. Petals è sponsorizzato dal consorzio OW2 che vede tra i suoi membri strategici RedHat, Thales ma anche IONA e Linagora. Per il bpel c’è poi Orchestra che offre integrazione con Petals, guardacaso Orchestra è sponsorizzato dal consorzio OW2 e la sua guida è scritta da quelli di Bull che ne fanno parte.

Vi siete persi ? Spero di no, non vi posso suggerire qual è meglio quale no, vi faccio solo notare che ci sono degli standard e ci sono grosse aziende che forniscono un pò tutti questi prodotti.

A mio avviso siccome la struttura delle vostre applicazioni probabilmente spazierà tra application server, esb e web service framework soffermatevi sui software che fanno parte della stessa azienda perchè avrete sicuramente necessità di integrarli (e magari meno sono gli strumenti che usate e meglio è).

I riferimenti sono così tanti che non ho voglia di metterli vi consiglio di partire dalla pagina di wikipedia di JBI e quella di BPEL.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s