Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Java SOA Cookbook
Recensito da Ivan Venuti il 11-06-2009 ore 10:17
Copertina ISBN: 9780596520724
Autori: Eben Hewitt
Editore: O'Reilly
Lingua: Inglese
Anno: 2009
Pagine: 716
Allegati: Nessuno
Parallel Studio XE
Il libro fa parte della collana Cookbook di O'Reilly; questa serie ha lo scopo di fornire soluzioni pronte all'uso nelle diverse tecnologie e/o linguaggi di programmazione, quindi viene dato meno spazio (o nulla) alla teoria e vengono forniti tanti esempi di codice funzionante, che illustrano i punti chiave e le diverse implementazioni possibili.

Questo libro, pur ricalcando le linee guida della collana, si differenzia perché garantisce comunque ampi spazi alla teoria e alle scelte strategiche che stanno dietro al codice presentato. D'altro canto non poteva essere diversamente visto che l'argomento, le SOA, è particolarmente complesso e, allo stesso tempo, ampio, variegato e con termini il cui significato non è sempre chiaro o condiviso da tutti.

Infatti i primi capitoli servono proprio per dare un senso ai tanti termini che ci si trova davanti nel mondo delle SOA; essi vengono chiariti e contestualizzati, e viene mostrato come cambiando di contesto gli stessi termini cambino di significato; un esempio su tutti è il concetto di servizio, basilare per costruirci attorno architetture e modalità di iterazione: benché con servizio quasi sempre si intendano dei servizi pubblici, che dialogano fra loro in un qualche dialetto basato su XML ed esposti su protocolli di rete standard (HTTP, SMTP e così via), ci si potrebbe riferire anche a tecnologie proprietarie e specifiche, come lo standard EJB in ambiente J2EE.

Accanto alla definizione dei termini vengono presentate le caratteristiche salienti dei componenti base, affinché risulti, alla fine, un'architettura SOA e non un guazzabuglio di servizi. Ottima la discussione dei principali design pattern, nonché delle problematiche alla base del design di una simile architettura.

La prima parte del libro si chiude analizzando gli XML Schema e la loro gestione via Java. La seconda parte affronta i Web Service, che costituiscono la base di quasi tutte le architetture SOA. Qui la trattazione va subito al concreto, mostrando esempi di codice nelle principali tecnologie Java a disposizione e, ahimè, qui la scelta è vasta, il che porta i neofiti ad avere le idee confuse e a utilizzare male le diverse opzioni a disposizione, senza una vera cognizione di causa. Qui il libro aiuta ad addentrarsi nelle diverse tecnologie e a capirne i punti di forza e di debolezza. In particolare gli esempi usano SAAJ nel capitolo 5, JAX/WS nel capitolo 6; nel capitolo 7 si mostrano le novità dell'ambiente J2EE versione 5 per la scrittura di WS basati su SOAP (e le notevoli semplificazioni rispetto al passato). Il capitolo 8 affronta invece la scrittura di WS di tipo RESTful, attraverso la presentazione di vari framework che implementano le specifiche JAX-RS: Jersey, RESTEasy e RESTpack.

La terza parte del libro introduce le tecnologie di Business Process, sconosciute ai più abituati a sviluppare semplici WS, ma essenziali in ottica di architetture SOA complesse. I capitoli 9 e 10 affrontano la problematica della service orchestration mostrando l'uso di BPEL. Anche qui non manca una parte introduttiva, indispensabile per chi non conosce BPEL. L'undicesimo è uno dei pochi capitoli, se non l'unico, che contiene codice; in esso si analizza il concetto di SOA Governance e delle problematiche sottese.

La quarta e ultima parte del libro analizza l'interoperabilità dei servizi e spiega quale può essere una definizione appropriata di qualità in questo contesto. Nel capitolo 12 non mancano esempi concreti di interoperabilità con servizi creati in ambiente .NET (e vengono sviluppati client usando Visual Studio, C# e Ruby. Ma la vera forza del capitolo sono i suggerimenti per creare servizi davvero interoperabili ed evitare i problemi più comuni in quest'ambito.

L'ultimo capitolo, il 14, analizza il concetto di Enterprise Service Bus, presentando cos'è e quali problematiche risolve; tuttavia questa volta vengono presentati solo vantaggi, anche se non tutti sono di questo avviso.

Il libro, soprattutto nei capitoli iniziali, aiuta il lettore a entrare in maniera graduale in un mondo particolarmente complesso, ma presuppone comunque una certa padronanza dell'architettura J2EE e un'infarinatura dei WS e del loro significato. Pertanto non è un testo per neofiti, ma comunque presenta sufficiente materiale per introdurre la materia anche a chi si avvicina per la prima volta al mondo SOA.

Invece il target principale del testo è quello di uno sviluppatore/analista Java con una buona padronanza dell'architettura J2EE, il quale, magari, ha avuto modo di affrontare lo sviluppo di qualche WS anche se in maniera sporadica. Per questa categoria di utenti il libro presenta ottimi esempi, sempre ben contestualizzati e di cui si apprezzano sia le indicazioni d'uso che gli avvertimenti su eventuali situazioni cui prestare attenzione. Nel complesso non è un libro adatto ad un software architect o a chi vorrebbe avere una panoramica di alto livello delle SOA, ma d'altro canto è difficile che queste figure ricerchino un cookbook per le problematiche di loro competenza. In definitiva è un ottimo libro, ben organizzato e ottimamente scritto.
proIl testo contiene molti ottimi esempi di codice, sempre ben contestualizzati. Si parte dai "mattoncini base" (i WS) per arrivare a scelte architetturali e di processo avanzate. Pertanto esso è adatto a chi, avendo un'ottima base di Java e una buona conoscenza dell'architettura J2EE, vuole entrare nel mondo SOA.
controNon è un libro per principianti del linguaggio Java, né per software architect, sempre che questi possano essere considerati degli elementi negativi, vista la collana a cui il testo afferisce.
Precedente: Come realizzare un file transfer con WCF (1/4)
Successiva: Il DNSSEC nei domini .org (1/2)
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.203 secondi.