||This is a review of the book – Alfresco 3 Web Services by Ugo Cei and Piergiorgio Lucidi. Click on the cover image to see the publisher’s page for the book. The book is published by PACKT Publishing – an active supporter of open-source projects.
Disclaimers / Disclosures
- This review represents my independent opinion.
- I have not been paid for this review.
- The publisher has provided me with a free copy of the book for writing this review.
This review does not attempt to provide information about Alfresco or web services outside the context of the book. The review focuses on what the book offers, what it does well, and where it could have done better. Content outline and information about the authors is present on the publisher’s page for the book.
I browsed through the book as soon as I received my review copy to get a feel for its contents. It appeared to a be a handy reference for building applications or integrations with Alfresco using its web service interfaces. While this impression held well as I went through the text, I made some additional observations.
At a high level, this book is organized into three parts – SOAP-based access to Alfresco, REST-based access to Alfresco, and CMIS. I would have loved to see this organization made explicit as Parts 1, 2, and 3. Currently, the description of this organization is hidden in a small paragraph in the preface, which many readers may miss. An introductory chapter relating the high-level concepts and introducing Alfresco would have made the book significantly more reader-friendly. I felt that the book assumes certain knowledge of content management concepts and of Alfresco, but this assumption is not made explicit in “Who this book is for”.
The book does well when it comes to getting into the details of features and capabilities. These details are made accessible to the reader using examples and real products as diverse as Alfresco SDK, FreeMarker, Apache Chemistry, Google Web Toolkit, and MyLyn WikiText parser. The book uses a Book Shop model for a large number of examples, but it also refers to other smaller examples depending on the context.
It also does a good job of introducing the concepts and standards related to SOAP, REST, web scripts, FreeMarker templating, Atom, AtomPub, and CMIS. CMIS deservedly gets a lion’s share in the text as it is a standard means of interaction with any content repository implementing this interface. As many of the content management heavyweights have backed CMIS, it is likely to be supported widely. The discussion on CMIS includes AtomPub and Web Services bindings, CMIS query language, and an example of building a complete CMIS client application.
The bookshop example is used as a key example in the book. The details of the example appear somewhat contrived to enable explanation of the relevant concepts. There is nothing wrong with an example being contrived in this manner; actually, it serves well to illustrate how to accomplish the desired effects. I just expect the text to make it clear that the example is a contrived one. The book, however, refers to it as a “real case”. I am wondering why I would implement a bookshop web site on Alfresco in real life. There could be a plausible reason but it was not explained. In my mind, I would need some content management requirements to use Alfresco, and I would probably limit the role of Alfresco to that extent in the commercial web site. Further, the example was mostly focused on metadata, and I kept wondering why I wouldn’t just use a database rather than a content repository.
I am not belaboring the bookshop example for its own sake as I admitted that it does well to illustrate the interface details. In my mind, it represents a missed opportunity for the book. In general, the book could have provided more advice on when to do something in addition to how to do it.
Overall, I found the book to be a handy resource for anyone working with Alfresco or content management web services. If you know the specific things that you need to do it can be an excellent resource showing you how to do it. If you need to make choices before implementation, you may need to utilize additional resources. If you are new to Alfresco and content management, you may want to look at additional resources first.