||This is a review of the book – Alfresco 3 Web Content Management by Munwar Shariff, et al. 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 WCM 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.
When I received my review copy I had the following context about the subject of the book. I had reviewed a few Alfresco books over the last couple of years. I had deployed Alfresco recently on 64-bit Linux. I was familiar with the earlier rudimentary WCM features of Alfresco, but I had also heard about significant recent enhancements in this area. Once I started reading the book, I also put on the general reader hat looking for the desirable features of books in general.
In this review, I first share the things I liked about the book. Later, I will share the things that could have been better; these range from possible inaccuracies to minor annoyances.
This book is filled with code examples, which will aid anyone trying to implement the corresponding features. The examples are usually accompanied by detailed, step-by-step instructions. Many examples are also accompanied by good illustrations with bubbles/annotations on screenshots. In particular, I liked the nice figures illustrating content delivery and deployment.
The book contains good detail on installation, and the configuration details for various platforms are also likely to be helpful. When I had installed Alfresco on Linux 64-bit/Tomcat 6, I would have really benefited from such information since some details had changed across versions of Alfresco, Fedora, and Tomcat . However, I have some concerns regarding a few discrepancies in this area. For example, page 29 indicates that JDK5 is used for the book, but page 21 indicates that JDK 6 required. Page 29 indicates that the examples were created with Tomcat 6, but page 78 indicates tomcat5w. This mixing of two sets of product versions may lead to some surprises while following the instructions. Though this is not an issue, I was a little surprised to see that the Eclipse release from 2007 was being recommended on page 30 while most other product releases are quite recent.
There is excellent coverage of relevant topics for Alfresco WCM. These topics include Advanced Versioning Manager, sandboxes, virtual server configuration, defining web forms, customizing the editor, workflows, custom workflows, dynamic customization, multi-tenant environments, multi-site configuration, templates and asset reuse, deployment approaches, Alfresco Surf, in-context editing, web scripts, integration with external systems (Liferay, Drupal, J2EE web applications), Alfresco framework (security, video transcoding, image transformation, advanced search, metadata extraction), and administration (data backup, upgrading, maintenance, authorization, resetting the entire repository, migrating servers).
I like books that provide recommendations based on practical considerations and experience. This book provides such recommendation for workflows among several topics. For example, it discusses performance impact of number of workflow instances.
Areas of Improvement
The book has several minor issues related to typos, grammar, and similar concerns. As these issues may have escaped the review process, I am sharing here what I noticed. I am inserting my suggested corrections in [ ] below.
Page 26 has, “It is designed in [for] non-critical Environments.” Page 127 has, “Rendition templates simplifies [simplify]and accelerates [accelerate]”. Page 230 has, “only [a] few files.” Page 256 has this tautological sentence: “you can create as many web projects as you can [desire/wish/want].”
The text has some instances, which probably make things difficult for readers. The first figure on page 11 introducing the Alfresco WCM model is not explained at all. On page 12, the figure is introduced by “One temporary workflow sandbox per active workflow instance per web project:” but there is no mention of a workflow in the figure and there is no further explanation regarding this.
The section Alfresco WCM Model on page 11 is probably foundational for the whole book. It would have been nice to have an illustration of the model with a figure which tied together the concepts described in this section. The delivery models are illustrated, and the individual WCM model concepts are illustrated, but no complete WCM model illustration could be found.
The physical architecture diagram on page 25 is not explained. In this diagram, the meaning of arrow direction doesn’t seem obvious. The authoring environment is pointing to receivers and the portal cluster is also pointing to the receivers. Should one interpret it to mean that they are both pushing data to the receivers? It seems that similar looking arrows mean different things in this diagram.
The book lists some situations where WCM could be recommended. It isn’t clear though if it is not recommended when one of these considerations is contradicted. For example, it sounds like WCM is not suitable if anything more than “Submit for Approval” is needed by way of workflow.
On page 222, the zero workflow is discussed but not defined. One can start guessing based on the material what the zero workflow is, but it is not defined. The closest it gets to a definition is in the summary of the chapter, “Implementing ZERO workflow gives the flexibility to submit content using workflows without selecting any user/group.” The reader is left guessing whether that is one feature of the zero workflow or its defining characteristic.
The book has some assertions, which appear simplistic or biased. Page 10 compares Wiki-style and Publishing-style CMSs and some statements appear not to be well informed. I don’t know about all the products listed but here are some thoughts about Drupal. It uses themes and CSS, separating presentation from content. It can allow content revisions and approval workflow on a particular version while another version is live. Whitehouse.gov runs on Drupal and that should refute the “small site” argument. While I get what the authors are trying to say, I wish their arguments were a bit more nuanced. SharePoint doesn’t even get a mention in this mix.
Some assertions in the book appear to be misleading. Page 122 discusses how to dynamically populate drop-down lists, but the example shows how to statically specify the drop-down values in the schema. If this could somehow be dynamic, the text doesn’t explain it. Page 231 asserts, “This feature is very powerful even from a legal audit point of view, wherein you have an ability to reproduce the website as of a specific date.” This statement needs to be qualified by a statement that for a data-driven web-site it may be insufficient without also taking snapshots of the database.
In my experience, WCM systems require two kinds of quality assurance (QA). One kind is the QA of content production, which is accounted for by sandboxes and the approval process. However, this QA happens within one environment. The other kind of QA is needed for the customization of the WCM system. Such changes would include defining new content types, XML changes, web script changes, etc. In most organizations, such changes cannot be made directly in the production environment. There are typically development and/or QA environments for the QA of the development efforts. The book does not address this aspect of WCM.
This review has given more space to the things that could have been better, but most of these things are minor annoyances. However, my take on the book is that it is a handy reference for the exact steps and examples when you are implementing Alfresco WCM. In order to make the best use of this book you may need the knowledge of Alfresco fundamentals and a general understanding of WCM concepts from other resources.