ATG Architecture

Discussions

General J2EE: ATG Architecture

  1. ATG Architecture (8 messages)

    I recently accepted a position as a Java Application Architect at a company that has been using ATG technologies for a couple years. Their implementation is - quite frankly - less than impressive, and some major re-architecting will be required in order to meet long-term demand. As part of that, they plan to move to the 2006 version running on Redhat/JBoss. I will be tasked with making recommendations on the new architecture. I generally steer away from hard dependencies on proprietary code, but balance that with avoidance of “re-creating the wheel” when suitable alternatives are available. I am satisfied that for the core business functionality such as e-commerce etc, the product is at least suitable and not likely to be on the table for discussion. But, I do question the use of their presentation components (tag libraries and the like), persistence components (repository items and caching), and other non-business components when alternatives such as Hibernate, Spring, and others are available and so widely adopted. I would appreciate comments from anyone familiar with ATG on this topic.

    Threaded Messages (8)

  2. Re: ATG Architecture[ Go to top ]

    Raymond, I have been working with ATG technologies for several years, and please don't take it as an offence, I respect your opinions but I get the impression that you don't know the ATG products well enough. For example, you say that the products are suitable for the business functionalities such as e-commerce, but that you do not like the persistence implementation, the tag libraries, etc. Just to mention one fact, the e-commerce architecture is built around repositories and repository items, if you want to replace this component (with no matter what other implementation) you're in for a major rewrite of core components, of questionable business value at least, then you'll have to re-test everything, and on top of that it would not be ATG anymore (you won't get any support from ATG, everything would fall on your shoulders). On the other hand I understand your position, you like what you already know and it would probably be the same for me (I don't know that much about Hibernate, but I'm not that much impressed about Spring as opposed to Nucleus). I'm open to discussion if you want to go into further details, it could enlighten me on Spring and Hibernate and it could help you make a more informed decision. Sebastiano Pilla
  3. Re: ATG Architecture[ Go to top ]

    Well I am very close to your situation. I am also very new to ATG. I might not offer a great insight but I can offer my observations. Spring has its own version of DI and ATG has its own. The problem with ATG is that it doesn't offer easy Unit testing. ATG you MUST(i don't know if there is a way to avoid this) extend from their framework classes in order to write a functional application. Spring framework components are built on top of J2EE API where as ATG is built as core components just to run within ATG (I think recent version of Nucleas runs within websphere!) BTW as far as I can understand ATG have been using DI for years now than recent implementations Spring or any other DI framework. It is almost like they are way too early with DI. ATG also doesn't offer you any MVC implemenation for your UI layer. But As far as I can understand their form handlers are like struts actions. The biggest problem I can seeing using ATG is dependency and lack of J2EE implementation(I do not know the recent version) therefor your application have to do too much to function. DI : Both Spring and ATG MVC : Spring has it, ATG don't Form handlers of ATG == Spring FormControllers(which are more convenient than that of ATG's) Persitence: Spring has DAO implementation which makes your code clean, ATG has repositories but code is messy. Spring also functions very well with third party persistence, O/R and MVC frameworks. ATG somewhat forces you to use "Domain driven Design" though. BUT your bottomline will be J2EE based implementation and not proprietary one.
  4. Re: ATG Architecture[ Go to top ]

    I would like to clarify some points about your post and to ask you a few questions:
    Well I am very close to your situation. I am also very new to ATG. I might not offer a great insight but I can offer my observations. Spring has its own version of DI and ATG has its own. The problem with ATG is that it doesn't offer easy Unit testing. ATG you MUST(i don't know if there is a way to avoid this) extend from their framework classes in order to write a functional application.
    While is rather common to write classes that extend ATG's GenericService class (or other ATG classes), this is by no means necessary. It is common because in this way your code can take advantage of the functionality that ATG provides, but you don't have to if you do not want: for example, you can write a servlet filter by implementing javax.servlet.Filter, logging information with Log4J, or writing "bare" Java classes. My first question then is, in what way ATG doesn't offer easy unit testing, what do you mean by "easy unit testing"?
    Spring framework components are built on top of J2EE API where as ATG is built as core components just to run within ATG (I think recent version of Nucleas runs within websphere!) BTW as far as I can understand ATG have been using DI for years now than recent implementations Spring or any other DI framework. It is almost like they are way too early with DI.
    There is a difference between ATG (the company) and their products, often when saying ATG we mean the framework but it's like saying "Microsoft" and not telling which product... ATG (the company) shipped Dynamo, a combination of an application server and a development framework: now, and since version 6.0 at least, ATG ships DAS (their own J2EE application server) and the framework. The latter can be used, as of today, on WebSphere, WebLogic and JBoss.
    ATG also doesn't offer you any MVC implemenation for your UI layer. But As far as I can understand their form handlers are like struts actions.
    You have a point here, though I personally prefer to say that ATG does not mandate any particular MVC implementation and I'm free to choose the one I prefer or not to use it when it's not appropriate.
    The biggest problem I can seeing using ATG is dependency and lack of J2EE implementation(I do not know the recent version) therefor your application have to do too much to function.
    DI : Both Spring and ATG
    MVC : Spring has it, ATG don't
    Form handlers of ATG == Spring FormControllers(which are more convenient than that of ATG's)
    Persitence: Spring has DAO implementation which makes your code clean, ATG has repositories but code is messy.
    Another question: what did you find "clean" in the way Spring's DAO makes your code, and what "messy" in ATG's repositories?
  5. Re: ATG Architecture[ Go to top ]

    Easy there fella, As we said We are new to the product. So the code I am looking at has ATG dependencies in the code which doesn't allow me an easy mockup of a class to write unit test. Thats what I was refering to. As far as spring DAO goes, Makes my code virtually free from connection clutter and also better exception handling.
  6. Re: ATG Architecture[ Go to top ]

    It wasn't my intention to belittle you, if this is what you mean with your
    Easy there fella
    Anyway, thanks for your clarifications, you may also want to have a look at http://tersesystems.com/code/?overview=mockobjects
  7. Re: ATG Architecture[ Go to top ]

    Curious... it has been one year since you posted this message. What do you think about ATG now? Are you still working with it?
  8. Can anyone send me information on Web Servicves in ATG? I need some technical documentation on how to implement a ATG Web services development senerio. SDK would be cool. Thanks
  9. ATG Blog[ Go to top ]

    Check out http://atgblog.info, this site has got a lot of ATG materials.