ATG Thoughts

These notes record my experience of installation and development with ATG Dynamo 4, undertaken as a comparison with BroadVision 3.0 in December 1998.

Preparation

I downloaded Dynamo 4 and supporting tools to a 266MHz Windows NT Workstation laptop with 96Mb RAM, running Personal Web Server. The download was straightforward and ATG were helpful with the evaluation setup which I would conduct over the Christmas break.

Installation

Christmas Day: Installed the product in an hour or two and configured it so that flat HTML pages would be served up through Dynamo. Installation was simple. The tools all seemed to work well although the Personalization Control Center behaved oddly when minimized/maximized. The evaluation download supplied a SQL database engine that could be used on a low-end PC for testing. Overall, installation and configuration was a very satisfactory experience.

First Run

I had made a copy of the static HTML version of a substantial web site that my employer built before they converted it to BroadVision. The conversion had taken six months in total. I was curious to see how far I got in a week. The flat HTML site ran just fine under Dynamo (which was not surprising but it seemed important to confirm this).

One of the big wins over BroadVision here was that ATG would serve plain HTML and rewrite links on-the-fly to allow session information to be persisted. Only pages that needed dynamic behavior needed to be changed from flat HTML to JSP. BroadVision requires all pages to be converted and all links to be rewritten as SmartLink/Receive object invocations. Even conversion of a flat site to BroadVision is an expensive proposition.

Registration / Profile

Boxing Day: Started to build a Dynamo version of the registration and profile pages by taking the BV3 versions (the static site had no login) and replacing BV tags with Dynamo Java 'droplets'. This was pretty straightforward and I had login / registration and a basic profile edit working within a few hours. I ignored fields that were not part of the standard ATG profile schema because I did not want to mess with the database.

Personalization

The BV version of the web site delivers personalized content based on hobbies, set in your profile. The simplest way to do this in ATG was to have the personalized content (which under BV must live in the database) as HTML fragments on disk, with META tags added to describe the content (what would be content meta-data in BV's database). This made it trivial to build personalized content with simple tools and to easily change the meta-data. A text field in the profile was used to contain the 'hobbies' and a simple rule set up in the PCC to match content meta-data to the hobbies. In BV, this would have required a ruleset with a component rule for each match that was required but in ATG it required only a single rule because ATG's rule engine allows much more sophisticated rules.

Adding Components

I wrote a few simple classes to test how simple integration would be. It was a matter of a few minutes work to compile a Java class, restart the Dynamo server and be able to access the new components. Everything worked as advertized with no surprizes.

Bugs

I found one bug during my initial evaluation: a Bean that should have accepted a null argument did not. I notified ATG and they had a patch for me in a few days which was easy to install and fixed the problem. They included the fix in the next release of their product. Their technical support were extremely helpful and knowledgeable.

Summary

I spent about two days on the evaluation, including installation. My focus was to see how quickly I could begin to personalize a large flat HTML site. I was very impressed at how far I got in two days. The next phase, which I never had time to complete, would have been to integrate a large interactive of the site (which I had prototyped in Java before recoding in C++ for BroadVision). The main thing holding me back was the complexity of building test data on my laptop at home since the data model was quite complex. I had no doubt that the actual integration would be simple.

At the time of my evaluation, ATG did not really have an out of the box module for handling personalized database content. Being able to use HTML fragments from the file system made this somewhat moot but it was a concern. ATG said they were addressing this issue.

The product architecture is very elegant and lets you get at and / or replace all of the internals of the Dynamo engine which provides extensibility and is very flexible. From a technical point of view the product is far superior to BroadVision 3.0.

Costs

Dynamo is priced at about half the equivalent BroadVision license. Development with BroadVision 3.0 requires extensive C++ work which is time-consuming and error-prone (and therefore expensive). Many studies exist to indicate Java development is about half as costly as C++ (i.e., it can deliver solutions in about half the time). As an experiment, myself and one of my colleagues (another project manager) redid the project proposal as if we were bidding using ATG instead of BroadVision. We estimated that we could have delivered the project in about half the time for about two-thirds the cost (and a larger profit margin). We could also have delivered the final functionality in smaller increments, which would have satisfied the customer more.

Resolution

The evaluation and re-worked proposal were not well received by my employer which had made a political decision to stay with BroadVision. If a company has no incumbent application server and has a large static HTML site, ATG is the clear winner. If BroadVision is already incumbent, it is hard to justify switching to ATG.