"Webservices bieden een nieuwe manier om gedistribueerde webtoepassingen te bouwen." Zo begint het boek van Ethan Cerami over webservices. Hij scheef zijn boek voor ontwikkelaars die niet vertrouwd zijn met webservices. Vier belangrijke technologieën komen aan de orde: xml-rpc, soap, wsdl en uddi.
Het boek levert een overzicht van elke technologie op een vrij hoog niveau. Het bespreekt de api’s en toont verscheidene opties voor de implementatie van elke technologie.
In de inleiding van zijn boek beweert Cerami dat hij een overzicht wil geven van elke behandelde technologie – een ‘helicopter view’. Mij ontging dan ook de reden waarom de auteur blijkbaar veel meer belang hecht aan uddi dan aan de andere technologieën. Uddi, dat helemaal aan het einde van zijn boek wordt behandeld, krijgt immers een ‘Quick Reference API’-hoofdstuk, dat niet aanwezig is bij soap, xml-rpc of wsdl. Van enige voorkeur voor uddi uit hoofde van zijn achtergrond kunnen we Cerami nochtans niet beschuldigen. Hij werkt immers niet voor één of andere leverancier, maar is software-engineer bij de Mount Sinai School of Medicine in New York. Hoe dan ook, persoonlijk vond ik de uddi ‘reference guide’ niet op zijn plaats.
Cerami geeft eerst een algemeen overzicht van waar de verschillende technologieën voor staan. Hij legt duidelijk uit welke sterke kanten elke technologie heeft, en waarom je voor een bepaalde technologie zou kiezen in een bepaalde omgeving. De auteur maakt ook meteen duidelijk dat het bij soap, xml-rpc en uddi niet altijd een ‘of-of’ geval is. In de meeste gevallen is een combinatie van deze technologieën onontbeerlijk om tot een gewenst resultaat te komen.
Om de verschillende technologieën goed te kunnen begrijpen, komt een grondige kennis van Java en in mindere mate xml goed van pas, want Cerami geeft coderingsvoorbeelden die anders niet goed te volgen zijn.
Xml-rpc is wellicht de makkelijkste manier om ‘function calls’ via een netwerk te maken. Het bestaat al vanaf 1998 en wordt ondermeer gebruikt in de Meerkat-nieuwsservice van O’Reilly (een ‘syndication service’ die het toelaat dat u bepaalde nieuwsstromen overneemt). Cerami’s verdienste bestaat erin dat hij niet gewoon het Meerkat-voorbeeld overneemt, maar een oefening geeft waarbij hij xml-rpc gebruikt als een middel om de oppervlakte van een cirkel te berekenen.
Nu is dit voorbeeld niet het meest spannende en bruikbare dat hij had kunnen gebruiken, maar het toont wel aan wat je met xml-rpc kunt doen. Bovendien blijkt de auteur ervan uit te gaan dat xml-rpc erg eenvoudig is van structuur. Hij besteedt er amper veertig pagina’s aan.
Met soap kan veel meer dan met xml-rpc, en dat resulteert in voorbeelden van een heel andere klasse en een bespreking die zich uitstrekt over twee hoofdstukken. Eerst bespreekt Cerami de algemene kenmerken. Daarna gaat hij dieper in op Apache-soap, Tomcat en de wisselwerking tussen soap en Java Beans.
Uitgebreide codevoorbeelden
Vervolgens gaat Cerami vrijwel helemaal de programmeertoer op. Het boek bevat vele uitgebreide codevoorbeelden. Die zijn dan ook niet meer kinderachtig. Niet langer berekeningen van oppervlakten; er wordt een heus ordersysteem opgebouwd.
Het hoofdstuk dat over wsdl handelt, is weer een stuk korter en bevat weinig voorbeelden. De meeste aandacht besteedt de auteur aan uddi. Hiermee krijgt het boek een beetje een onevenwichtig karakter. Anderzijds valt er nu eenmaal minder te zeggen over xml-rpc (althans voor een goed begrip) dan over uddi.
Een pluspunt is dat de auteur consequent relevante url’s vermeldt voor elke technologie. Zo kan de lezer zich verder informeren op het web, en niet enkel op de officiële websites die er bestaan over deze technologieën.
Web Service Essentials is een nuttig en prettig leesbaar referentiewerk voor wie meer wilt weten over soap en uddi. Persoonlijk vind ik dat xml-rpc en wsdl er erg bekaaid af komen, maar misschien is dat alleen maar een indruk en zullen programmeurs die goed bekend zijn met Java gewoon minder moeite hebben met die twee technologieën. In dat geval is Cerami gewoon heel efficiënt omgegaan met het papier. Ik vermoed echter dat de auteur meer ervaring heeft met soap en uddi, en er daarom zoveel aandacht aan besteedt.
Cerami Ethan: Web Services essentials, Distributed applications with XML-RPC, soap, uddi & WSDL,
O’Reilly & Associates, 2002,
ISBN 0-596-00224-6,
285 p.
Prijs: 21 euro.
Erik Vlietinck, freelance medewerker