ATG Dynamo – back to basics

I worry that ATG has mis-focused it’s energy.

In the last few years, ATG has introduced (or purchased) a number of new products which sit on the existing stack. Ticketing Features, Search, Merchandising, Campaign Optimizer, Knowledge, Self Service, Response Management, Commerce Service Center, Outreach, and Customer Intelligence). I haven’t had a chance to play with all of them yet. I’m sure they’re all very neat. I’m more sure that they help sell license dollars to marketing and business people.

I’m not trying to undercut the value in that. I see it. I totally think ATG should be expanding their offering, meeting customer needs, making money, etc… What bothers me is that if you look at the same time period which all of those new product were introduced, you’d see almost no changes or enhancements to the underlying product stack, what they now call the ATG Adaptive Scenario Engine (or ASE) which consists of DAS (ATG Dynamo Application Server) or DAF (Dynamo Application Framework), DPS (Dynamo Personalization Server), and DSS (Dynamo Scenario Server). Sure, there are some bug fixes, a little feature here and there (like adding forgot password support in 2006.3). But nothing significant. The programmers guides for ATG 7.0, 7.1, 2006.3, and 2007.1 look REALLY similar.

New features in DAS/DAF, DPS, and DSS may not close multi-million dollar deals, but they DO help your developers, and that satisfaction is often the key to a company staying on a platform versus moving to another option.

Some examples of technologies I would have liked to see integrated into the core stack:

  • JSF: JSF itself can be difficult to use, but with Facelets or better yet a JBoss Seam style support framework, it is a real pleasure. Even if ATG didn’t want to adopt JSF, supporting some JSF style features would be great. Things like templating, themes, richfaces style AJAX generating libraries, and so on.
  • EL: I’d love to see EL used all over.
  • Logging: Why do we have to wrap all of our logging calls in the if(isLogging…) block? Make the logging call smart enough to know when to log and when not to log. Oh, you’re worried about the performance impact of all the String construction and concatenation that happens in the log statements, and doing that all the time even if the logging level in question is disabled? Use EL and placeholders like Seam does. logDebug(“Creating user #{Profile.username} at #0”, System.currentTimeMillis()); Then the String concatenation only happens inside the logDebug method IF that log level in enabled.
  • Better AJAX and Flash/Flex front end integration support.
  • JMX/MBean management used extensively.
  • Security. The current security around the ACC, RMI exposed calls, the connection module -> DRP transport, etc… are all pretty bad.
  • OpenSSO support, SAML support, etc…
  • A database schema reverse engineering tool to create repository definitions from an existing set of tables.
  • Conversation scope: This has been needed for years.
  • Out of the box javascript to provide additional request data such as resolution, connection speed (best guess), OS and browser info, etc… I want all the information that google analytics can come up with, available for personalization and scenarios without having to hack together my own javascript and back-end AJAX-y receiver.
  • The ability to flip a single config and get google analytics style metrics. Yes, I know I can configure all sorts of scenario driven logging and reports and what not. But I want a “metricsOn=true” flag and a nice dashboard I can give to a business person.
  • CA-Lite: I want to be able to define content or a page region as dynamic, update it through a handy admin with a preview function and maybe some go-live go-dead dates. I don’t need versioning, or publishing workflows. I just want to be able to say “this block here is dynamic”, and then go in and create and edit content for that block. No new database tables, no Slot configuration. Something simple and out of the box.
  • Captcha
  • Page Flow: something like Java Page Flow or jPDL. The ability to define the site map graphically, and the transitions and transition actions or state changes or state pre-requisites in a single location is amazing.
  • Support for jPDL and BPEL in the same process management engine that drives scenarios. Or make scenarios into BPEL flows. Or something.
  • Cluster management tools: let me see the health, state, performance, uptimes, etc… of my whole cluster. Let me change a property cluster-wide. Let me bring instances in and out of my cluster from a single admin point. Some of that buck gets passed to the App server seeing as DAS is a dead product now, however there’s still a lot of DAF and ATG specific information and actions which make sense to have available at a cluster level.
  • Documentation: the documentation has holes and issues.
  • EAR Packaging improvments: the documentation, tools, and testing around this whole area leave a lot to be desired. Getting existing application packaged up easily is harder than it looks, and there are lots of odd errors that crop up. If you’re going to drop DAS, you better have AMAZING support for getting people going on JBoss and WebLogic.
  • Etc…

I could keep going, but you get the idea. There’s lots of room for improvement in DAS/DAF, DPS, and DSS, and yet they have really been languishing for years. Even ATG Commerce has been pretty stagnant, with the possible exception of Merchandising (which is itself just a set of templates around CA), which really is a new add-on, not an enhancement of the core ATG Commerce framework.

Does ATG have to keep up with something like JBoss? No, of course not, but these gaps have been there for years.

Anyhow, consider this a plea for ATG to spend some time really focusing on delivering the best, most up-to-date framework they can, supporting the latest and greatest technologies that everyone is using.






7 responses to “ATG Dynamo – back to basics”

  1. arickard Avatar

    Some of the suggestions you’ve made are already available in the platform. For example you suggested JMX/MBean management in your list. JMX/MBean management was introduce a couple of revisions ago. Also with the introduction of ATG Customer Intellignece you can report on an analyze ATG data in many more ways then you could ever before. Anyway thanks for the suggestions and keep them coming.

  2. Devon Avatar


    Thanks for leaving a comment. I had no idea anyone at ATG read this:)

    Because you mentioned it I had to search the docs (2006.3) to find JMX mentioned under EJB clustering, in one paragraph on one page. (I’m ignoring the JBoss admin guides references to the JBoss JMX console for the obvious reasons.) So I’d hardly say that ATG has used JMX extensively. In fact this sentence: "We do not currently support the use of third-party tools to invoke these JMX interfaces" seems to imply that JMX isn’t exactly embraced. So while ATG may support JMX/MBeans as part of the J2EE spec, it’s a far cry from something like JBoss where you have the entire platform exposed for management and monitoring via JMX, and tons of documentation and write-ups for third party tools, using JMX management consoles, etc…

    I’m not trying to imply that Customer Intelligence isn’t a worthwhile product, I’m just pointing out that much of the core product seems to be languishing. For instance, in the 2006.3 Repository Documentation you find this gem:

    "Demonstrates that D5 repositories (unlike D4.5) do not require a "seq_num" column."

    Clearly the Repository API and documentation hasn’t changed much since Dynamo 5. Or at least not enough to warrant new examples. I could go on for ages about the strengths and weaknesses (as I see them anyhow) of Repositories, but maybe that’s a separate post.

    Don’t get me wrong, I still really like using ATG, but the more time passes, and the more I spend time using JBoss, Seam, Spring, etc… the more apparent the stagnation appears.

    Does 2007.1 radically embrace JMX? Or is that one paragraph under EJB Clustering in the J2EE Dev Guide the extent of ATG’s JMX usage? I’m not trying to be snarky, but I’m a little dismayed that paragraph represents the best rebuttal there is to my post above.

    ATG used to absolutely lead in this field. Before there was jsp, before there was hibernate, ATG was THE pioneer and had the best technical framework around. While JBoss has yet to field the personalization and commerce layers (and may never), the underlying app server and projects like Seam, really exemplify the power of some of the newer (and I’m using this loosely as JSF for instance is over 3 years old) technologies. As an ex-ATG employee I hate feeling let down when I switch from my personal projects on Seam on JBoss to my day job on ATG.

    Anyhow, I’m happy to chat about this any time if you want more information.



  3. arickard Avatar

    It turns out you are correct. The JMX support hasn’t been documented (yet!). Anyway thanks for the feedback. Your comments have sparked some interesting dialog here at ATG. Keep ’em coming!

    BTW I should also add that if you’re interested in ATG technology you should subscribe to the google group ATG_Tech. There’s a growing community of egar ATG developers posting and sharing information. Many current and former ATG employees have joined.

  4. Devon Avatar


    I will keep ’em coming:) No worries:)

    I’ve checked out that group, however at the moment many of the questions seem to be from people who are just trying to avoid reading the manuals, so I haven’t gotten too active there. But I will definitely keep an eye on it.


  5. arickard Avatar

    Here’s some information I posted about support for JMX in ATG. I thought you might find it interesting.


  6. Victor Avatar

    Can you suggest a site or some form of documentation for beginners on ATG administration please.

    I would like to know about concepts of DRP,session manager,load Balancers,ATG search and Answer servers

    Thanks in advace

    1. Devon Avatar


      unfortunately you cannot get access to the ATG documentation without being attached to a paid support contract within the atg support site. If you are working on an ATG project your company should have access to the documentation.



Leave a Reply

Your email address will not be published. Required fields are marked *

PHP Code Snippets Powered By :