Vignette

reviewed by Philip Greenspun for Web Tools Review

This document has been superseded by http://www.photo.net/wtr/vignette.html. I keep this old one around because it was a fun piece of writing. The key issue is "how closely does your Web tool suite model the business that you want to be in?". In the two years since I wrote this article, Vignette has built some higher-level software than the mere Web/db connectivity layer described below. I've actually been doing this myself for a broad class of Web service operators with the ArsDigita Community System (free, open-source, and driven forward by 40 developers at arsdigita.com). Note that my book chapter describing the system does not even mention the Web/db connectivity issues discussed below. They really aren't relevant in the grand scheme of things. Looking at Vignette also gave me a good idea for a problem set for my students at MIT: http://www.photo.net/teaching/psets/ps3/ps3.adp.
Vignette is software that allows a Tcl programmer to extract data from an RDBMS and hand it to the Netscape Enterprise Server for delivery to a Web user. Technologically, Vignette is where the AOLserver guys were in early 1995. Is that bad? Maybe not. A reasonably high-performance Tcl/SQL Web server is pretty useful.

Why am I reviewing a product that is at least two years behind the state of the art? Because Vignette has somehow managed to attract sufficient funding and PR that people occasionally ask me for my opinion. So here's an edited version of a report that I wrote for a client in August 1997 after a meeting with Vignette's sales and tech people.

What it does not do

Vignette's StoryServer product does not do any of the things that their marketing literature claims it does. It is not a content management system. It is not a version control system. It is not a personalization system. The only sense in which it might be any of these things is that a programmer could use it to build one of these things. However, you could say the same thing about the raw Unix operating system plus a C compiler. Sitting through a meeting with them was for me a rather surreal experience. It would be rather akin to hearing Adobe pitch PhotoShop as a payroll check processing system.

I could laboriously evaluate Vignette against the criteria that I laid down for Web/DB integration tools in Chapter 12 of Database Backed Web Sites. However, I think I'll restrict myself to a few key points instead.

Caching

IBM, Oracle, Informix, and Sybase have collectively invested several billion dollars in figuring out optimal strategies for caching information extracted from an RDBMS via a SQL query.

The wizard programmer: figures out a very fast mechanism for a dynamically generated Web page to get to the RDBMS. (AOLserver)

The smart programmer: tries to build a very fast mechanism for a dynamically generated Web page to get to the RDBMS but fails and ends up with a needlessly pokey one instead. (Netscape LiveWire; Oracle WebServer)

The stupid programmer: can't figure out this RDBMS thang and resorts to stuffing the results of queries into the Unix file system.

The idiot programmer: can't figure out this RDBMS stuff so stuffs the results of queries in the Unix file system. Then goes and patents the idea. (Vignette.)

Yes, what Vignette does is, the first time someone requests a page, the code written by the publisher's programmer is executed. It may query an RDBMS. When the page has been built, it gets delivered to a user and then stored in the Unix file system. Should another user request the same page within a specified time period, the HTML is delivered from the Unix file system rather than by running the Tcl code and querying the RDBMS again.

Fifteen minutes of thinking about this architecture makes one realize that it is totally the right thing for Sun Microsystems. Data comes from the disk subsystem. It goes into Oracle's shared memory cache. Then it goes into Vignette which writes it back to a different part of the disk subsystem. Then it comes back out of the disk subsystem and into Vignette before going out the Netscape Enterprise Server to the client. You need a computer with about twice as much RAM and disk/RAM bandwidth than if you just did the obvious thing and served db-driven pages on the fly.

Let it be noted that caching outside the RDBMS is not always a bad idea. If one is using a low-grade RDBMS or depending on data from foreign servers (see The Bill Gates Personal Wealth Clock), then caching in the server program's virtual memory can be an excellent idea. I spent ten minutes writing a general-purpose Tcl memoization function that I use for caching portions of pages.

For modern Web services, this kind of caching isn't usually make-or-break. The whole point of Web service design is that you personalize pages. Server-side caching of a big page that you built for Jane Doe won't be of any use when you're serving Joe Foobar. So even if the Vignette caching scheme were better-implemented, it wouldn't be of any use for most parts of a modern Web site.

No Data Model

Since Vignette has no standard data models they have no applications to offer and never will. The whole point of packaged software that sits on top of database management systems is that you avoid reproducing the bugs that other people with similar problems suffered through. Vignette tech people said "of course we don't have any data models; that would limit your flexibility."

This was actually the most useful part of the meeting. I studied the success of Vignette's marketing literature and began to think about what it would be like if one actually built a product like the one they imply they have. Check out the system I designed and have (mostly) built.

No Session Variables

Vignette is even a failure at coddling novice programmers. They don't have any support for session variables, a feature that has been present in Netscape LiveWire, Meta HTML, and Microsoft ASP from the beginning.

No Expertise in Document Management

Content management and document production is a complicated area that has attracted some thoughtful people and resulted in some big systems being built. Some of these systems required thousands of programmer-years to develop (see Documentum for example). By contrast, Web/DB integration tools are simple things that can be built by a few programmers in a few months. If you found a company that did the document production and version control in SGML like you wanted, they could write a Web front-end for the content in about two months (though probably all of them already have written Web front-ends).

One of these "real document management" companies (Basis; http://www.idi.oclc.org/) didn't feel like dealing with Oracle, et. al., so they wrote their own full-blown RDBMS from scratch.

No Product

Vignette really does not have a finished product. What they have is a little toolchest that they think is better than, say, Netscape LiveWire, and a bunch of consultants who know how to use this toolchest. The Vignette salespeople talked about how their consulting arm was their biggest strength. Well, you don't need to hire 17 consultants from Adobe after you install PhotoShop. It is useful just as it comes out of the box because it is a real product. PhotoShop is an application program that solves a problem and has 98% of the features that a randomly selected user might want.

Summary, Sort Of

Leaving AOLserver aside, anything that you could do with Storyserver, you could do almost as easily and probably more efficiently with raw Java on the back end of the Netscape Enterprise Server, more easily with LiveWire, more easily with Microsoft ASP, and more easily with any of the Web/DB integration mechanisms in AOLserver.

Brave New World

Vignette's StoryServer actually represents a watershed in the software industry. For decades vendors have been overselling programs. They gloss over bugs. They imply that something is 100% finished when really it only solves 20% of the problem. But Vignette has broken new ground: advertise features such as "content management" when you haven't written even one line of code directed at delivering the feature! How effective is this new selling system? Vignette's Web site notes that they got $13.5 million in financing.


philg@mit.edu

Reader's Comments



-- Christopher Traynor, March 1, 1999
After reading the complete documentation i just could not understand what exactly Vignette StoryServer is.I'm a ASP professional.How can it will be useful to me? and you are saying that TCL programming...what it is...And this Vegnette Server is compatiblle with ASP(Active server pages)...please send me the mail with all details... Regards Ramchandrareddy.r

-- ramchandrareddy rupireddy, December 20, 2000
The review of Story Server is quite outdated... The product now offers extensive content managment, personalization and cache management.

Yes, cache management is important... if you perform a database operation for every page generation then you still need to get that information from the database, process it, format it in HTML, then deliver it to the client. With Vignette's patented cache management, the generated HTML is cached, and hence delivered without the processing overhead. This is part of what the industry calls scalability.

-- Sakes ForHire, January 26, 2001

This is a rather simplistic and biased view of Vignette. From programming in tcl off and on for the past 5 years, it is simple and felxible enough to provide a custom Content Management App. in a relatively short period of time. Further customization of this software would create a "Microsoft-like" product, totally inflexible and full of bugs.

-- Chris Pena, February 11, 2003
I was a developer for the now defunct Europeaninvester.com. To impress their investors and guarantee a solution, they bought Vignette StoryServer for $250,000. When they opened the box and installed the OS on the Sun server, then added Netscape enterprise and Oracle. whew! everything is installed and ready to go. Oops, it doesn't do anything. StoryServer gives you an inferior development environment compared to Visual Studio and your stuck using a scripting languge to create your applications. Vignette was so proud of their caching technique, but If you have a lot of concurrent users, the system will fail if you have even one db connected page not cached. Caching the results of a web page instead of caching the actual query used, like with SQL server is a waste of time, because you lose the true dynamic environment. You end up designing web pages rather than web applications. RAW asp.net is FAR FAR superior to Vignette in every way shape and form, why Vignette is still around Is beyond me.

Developer's listen. If your company has invested at least a quqrter of a million dollars for the StoryServer application, they won't have much left for you and you will be stuck in a shitty scripting language environment and you will hate your job. Been there done that. ASP.net is free with the operating system, HUGE support and all that money that went to to Vignette can go to you... Simple.

Vignette is a scam preying on the start-up company hoping that buying a $250,000 product will guarantee results.

-- Tony Skiens, January 19, 2007

Add a comment | Add a link