- Liferay (now adopted by Sun as Java Web Something or Another)
- OpenXava
- jMaki + Spring
Currently experimenting with …
24 09 2009Comments : Leave a Comment »
Categories : Java
People are listening
24 09 2009Updated my test install of OpenCms to 7.5 the other day. As usual the update went smoothly with no problems to speak of. And I was pleased to see that the demo site had been changed to “The Wonderful World of Flowers.”
Here’s the background: My employer evaluated OpenCms last year but decided against it. A number of reasons were put forth (e.g. workflow, user interface) but I still think the major reason was the negative impression left by the OpenCms demo site … which at the time was a review of German regional sausages.
As I noted (sadly) in an e-mail sent to Alkacon shortly after that disastrous demo, regional cuisine is very important to ethnic/cultural identity. However, Americans tend to associate sausages with … solid waste, among other things. In particular Californians — who see tap water as deadly poison — have a hard time identifying with a product that subconsciously glorifies the consumption of bodily toxins.
I have no way of knowing whether my feedback inspired this change. I do hope it helps Alkacon succeed in the North American market. Not that I have anything against bratwurst, weisswurst, knockwurst, or … OK, maybe I’ll draw the line at blutwurst
Comments : Leave a Comment »
Categories : OpenCMS
Cascade Server: Competent and predictable
24 09 2009I’ve spent the past year or so up to my armpits in Hannon Hill’s Cascade Server. My overall impression is that it’s a competent and (mostly) predictable product. But as content management systems go that’s pretty high praise.
I’ve used the SOAP interface to migrate about 8,000 pieces of content (articles, images, etc.) from Vignette V6 and V7 into Cascade Server. There are a few real “gotchas” that made life difficult. For example, link tracking isn’t activated automatically when creating or editing content through the web services interface, at least in Cascade 5.x. Documentation in 5.x is a bit skimpy. There’s no way to output “structured data” as plain text — HTML yes, XML yes, PDF yes, RTF yes … but not plain text.
But for the most part, Cascade Server works as advertised. It doesn’t claim to solve all your problems, but it is quite good at managing and publishing static Web pages. I look forward to the 6.x upgrade, which introduces a “site” metaphor that will help to bring cross-site links under control.
There is one feature of Cascade Server that deserves special mention — the versioning system. As configured by default, each edit to a page creates a new version. It’s trivial to view / audit / compare / roll back / revert between versions. Most importantly, initiating a workflow will create a new version and bind that version to the workflow instance. Editors, approvers, and publishers will work on that version and that version alone. I think it’s even possible to have multiple versions of an article in multiple workflow instances — for example, one version in publishing workflow and another version being bounced around in editing workflow for a later update. To some people this might sound like a bug — but large organizations have silly needs.
Obviously this versioning capability comes at a cost. Cascade Server is very database-intensive, and can be very CPU-intensive depending on the complexity of your XSL stylesheets. (Yes, Xalan has never been accused of excessive speed, nor efficiency.) Its scalability depends in large part on the scalability of your MySQL installation. Hannon Hill recommends circular replication, something which sounds great in theory but scares the living crap out of me in practice. I’d recommend keeping either a very good DBA or a gold-plated support contract to back up large installations.
Comments : Leave a Comment »
Categories : Cascade Server, Databases, Workflow, XML
Workflow: “A bunch of spoiled brats”
15 08 2008I’m not a drooling rabid fan of JBoss’ jBPM workflow engine, but I do agree with many of the sentiments expressed by jBPM lead developer Tom Baeyens in “The State of Workflow,” on jboss.com.
If database systems are like a respected, wise man telling a clear story, then workflow must be a bunch of spoiled brats shouting their own truth at each other. …
[W]orkflow management systems are at the very initial phase of the technology hype curve. … One of the observations that form the basis of this statement is the overwhelming number of concepts used. None of the numerous specs and tools in this area is similar.
Baeyens explains in detail why the concept of “activities” should be discarded in favor of “states” and “actions.” Baeyens then:
Many vendors of workflow management systems will let you believe that with their graphical process designer it only takes a business analyst to create process definitions. This vision originates from the fact that programming is hard. …
I’d disagree with the assertion that “programming is hard.” Certainly it’s not easy, but it’s not as hard as developing and codifying the actual business procedures … finding that delicate balance between oversimplification and analyzing everything to death.
While not having to write code is a good thing, most vendors go overboard on this and don’t foresee a mechanism to integrate code into a process definition … Developing process definitions requires input from -and collaboration between- a business analyst and software developer. A good graphical process designer should support this collaboration.
Here I’d have to agree 2000 percent. A GUI workflow builder seems simple and “intuitive” at first glance. Just keep in mind that the actual workflow engine has no such sense of human intuition. It helps to be able to explain the fine details of complex processes in a language that the workflow engine speaks.
Comments : Leave a Comment »
Categories : CMS Philosophy, Workflow
Selling Vignette 7.5
15 08 2008I’ve noticed an interesting change in the way Vignette has been pitching 7.5, in particular the High Performance Delivery (HPD) module.
At Vignette Village 2007, I recall that HPD was pitched as the core of “hyper-personalization” of Web content. The presentations pushed the idea that with enough nodes and arrows and licenses, Vignette could help us deliver custom content to each user while maintaining the same astonishing level of performance we had come to expect. I suspect this was an answer to a problem that most attendees didn’t realize they had.
Even as late as March, Vignette still emphasized the personalization and customization aspects of HPD:
“Our Web Experience Platform is all about customising and personalising the web experience, but many firms are afraid that this might make their sites suffer from slower performances,” he said. “HPD allows customers to offer the richest and freshest experience and helps contain IT costs.”
By launch time Vignette was already singing a different tune.
Vignette created HPD to help enable its customers to significantly increase the overall page complexity and volumes without the corresponding increase in resources required to deliver such pages. … Vignette recognized that most sites its customers built were content-heavy sites. Even sites that customers built to support application delivery drifted toward static content and documents. …
HPD’s innovative solution helps address … ability to control costs … improved site response times … delivery of cached pages during planned or unplanned application server down time.
Hmmm, cost control and response time. Now those are the problems I wanted to see addressed
In my limited experience, Vignette core developers and VPS consultants have never been in denial about the shortcomings of the company’s products. I’m glad to see a growing sense of reality make its way into the marketing department.
Comments : Leave a Comment »
Categories : Java, Vignette
Workflow options in OpenCms (Updated)
8 08 2008Currently there are three ways to handle workflow in OpenCms:
1. Don’t: just use the role-based permissions system to handle things. Regular users create or edit content, but lack publishing rights. Projects can be created to encapsulate changes or additions. Reviewers check the contents of projects and publish when ready.
2. BearingPoint Workflow2 module. Simple, but rudimentary. A workflow is defined as a sequence of OpenCms projects. Content is moved back and forth between projects and is published manually from the last project when approved. At least it doesn’t mess with the core classes, as does the …
3. Langhua.cn jBPM module. Amounts to an unmaintainable fork of OpenCms 7.0.3, with numerous changes made to core classes. Kinda-sorta worked with 7.0.4, but I seemed to run into problems with 7.0.5. This is unfortunate because in many ways it’s a very good module.
The core developers have hinted at some sort of workflow in the upcoming 8.0 release (due some time in 2010). Until then we can make do with what we have, or choose the next option:
4. Roll your own workflow module. It’s tempting. I mean, what could possibly go wrong?
Comments : Leave a Comment »
Categories : OpenCMS, Workflow
OpenCms: For us, by us
7 08 2008It’s the FUBU content management system.
And by that I mean it was designed for techies, by techies. And for “normal” people, too. This is one system that is user-friendly both on the front end and on the back end. What’s the last time you saw ANY J2EE webapp that comes with an optional command-line interface for disaster recovery?
Let’s look the ways in which OpenCms excels in a crowded and highly competitive niche:
- Content types are defined using XML schemas
- Structured content is stored as XML, and rendered using JSP templates and custom taglibs.
- Most system resources are managed through the “Virtual File System” (VFS), which is a database-backed repository similar in concept to Microsoft’s long-promised WinFS.
- Powerful module packaging system allows effortless export and import of extensions
- Multiple databases are supported through the use of properties files (!!!) that contain translations of various queries into different SQL dialects
- Clusterable and scalable without arcane remote interfaces and protocols
- Automatic versioning of content, with rollback and diff functions
- Site navigation is an integral part of the system and not an afterthought
- Fast, responsive, customizable management interface (“Workplace”)
- Friendly URLs. Nothing but friendly URLs.
Imagine this: You can create a complex content type as a special .xsd file, which can specify not only the structure of the content but the options for the auto-generated content input form. You then can create one or more templates to display that content using plain old JSP, scriptlets, and taglibs. The content you create is stored in a database-backed repository that looks like a plain old file system (down to our old friend index.html), but with the ability to tag items with nearly unlimited free-form metadata.
Make a boo-boo? Roll back to a previous version with a few mouse clicks. Want to put something live? Flip a bit in the database with a few mouse clicks — no worries about the management and delivery stages getting out of sync, failed publish jobs, checking the status of multiple endpoints, etc. Need to create a new page template? Just use your favorite JSP editor and upload it through the workplace, then change a bit of page metadata. Need to embed a custom application or extension? JSP is your friend.
Is it perfect? Nothing is perfect, no matter what your local friendly Vignette account rep may say. Lack of an OOTB workflow engine is the most glaring omission, though the project management tools go a long way toward making up for it. Oh yeah, and I accidentally blew away the master log4j.properties file while trying to deploy my own custom module code through the workplace, but that was easy enough to fix
But if you can live with the few deficiencies, you’ll find much to like about OpenCms, either as a content contributor or as a developer. What’s not to like about familiar technology in a robust, simple platform?
Comments : Leave a Comment »
Categories : Java, OpenCMS, XML
The kitchen dotSINK revisited
19 07 2008I was very pleasantly surprised to get a response to the last post from Will Ezell, chief technology officer of dotCMS, who writes:
Forgive me for using Vignette as a point of reference, but it’s what our end users are used to. I’d prefer a more explicit hierarchical organization in the content repository, sort of like the file system metaphor that V7 uses for projects and subprojects. But I’d love to find a way to make dotCMS work for us.
Time permitting I’ll definitely give dotCMS another look-see.
Comments : Leave a Comment »
Categories : Java, dotCMS
Everything but the kitchen dotSINK
18 07 2008Task-based workflow. Events calendar. CRM module. E-mail newsletter. Templating. Document management. Class enrollment system. Integration with Liferay portal. Commercial support. Hosting options. Easy content reuse. Excellent documentation. Amazon Elastic Compute Cloud support. Is there anything that dotCMS doesn’t have?
Sad to say, the answer seems to be “categorization and organization in the content repository.”
Once again I found much to like about dotCMS. Of all the contenders it was the closest to being ready to use OOTB, with a rich feature set as the foundation for future customization and extension. But with 10,000+ pieces of content to import and wrangle, that one minor shortcoming knocked it out of the running.
Comments : 1 Comment »
Categories : Java, dotCMS
Review: OpenCMS 7 Development, by Dan Liliedahl
16 07 2008Summary: Information indispensable, but could be easier to use
Liliedahl’s comprehensive overview walks the reader through the process of creating a blog, comment engine, and RSS feed module with the OpenCMS API. While these may not be typical applications, the teaching projects touch on every major aspect of OpenCMS: content type definition, content input forms, programmatic manipulation of content, user management, and the administration console.
Unfortunately much digging is needed to find the gems this book contains. Layout, formatting, and indexing all need improvement. Too often key pieces of information are buried in large blocks of body text, devoid of visual cues. I hope future editions will consider the likely audience: busy, perhaps frazzled devs and admins with dubious attention spans even under the best of conditions.
At $44.99 the book is just a bit pricey, but much of the information in the book can be found nowhere else. Don’t let the indifferent online documentation and outdated wiki discourage you from trying OpenCMS. The information in Liliedahl’s book will help you unlock the true potential of this mature, powerful product.
Comments : Leave a Comment »
Categories : Java, OpenCMS
In dotCMS, content does not live on the web tree, though that is not to say that it cannot be organized hierarchically. You can build custom taxonomies in dotCMS and apply them to specific content structures. Access to these taxonomies can be permission based. Meaning, you can have news content and apply a custom “department” taxonomy/category to it. You can then search/pull news based on that taxonomy and permission specific users to only have access to “their” categories, e.g. “biology news”. When building templates, you can specify to pull a list of news of a certain category.
Custom taxonomies can be applied across content types – events, news, staff, and used to relate and pull collections of content together.
I’m biased, but I’d say take another look. dotCMS is broad, but as you say, it is ready to go.