Sunday, December 18, 2011

ATG Interview Questions & Answers part 3


1. What is ATG Dynamo? What is ATG Framework?

Ans. ATG Dynamo or Dynamo Application Server(DAS) is a J2EE application server from Art Technology Group. Atg framework is a Web Application framework for building web applications. ATG dynamo implements the ATG framework. The application framework can also be run on all major J2EE application servers (JBoss, WebLogic, WebSphere etc...).

2.What is the scope of Dynamo Components?

Ans. There are three different types of scopes for ATG components namely
1. request
2. session
3. Global
Global is the default scope

3.What is Nucleus? 
 
Ans.Nucleus is ATG`s open Object Application Framework. ATG 7 is said to be a component-centric development platform. The ATG 7 Web applications are nothing but individual JavaBean components assembled together. These JavaBean components are configured and linked together by .properties files within Nucleus.
In Nucleus, each service is packaged as a JavaBean or set of JavaBeans. These JavaBeans are configured individually and mounted into a namespace. The beans then interconnect with the beans representing other services. Nucleus is responsible for interpreting the component configurations and the management of the component namespace.
Dynamo uses the Nucleus framework to organize components into a hierarchical structure (similar to a directory structure). Each Nucleus service has a unique Nucleus name. For example, the default javax.sql.DataSource component is located at /atg/dynamo/service/jdbc/JTDataSource
Nucleus is the core of the entire ATG system. It creates and configures Nucleus components (also called beans and JavaBeans) and organizes them into a hierarchical namespace, essentially giving them a place to live so they can be referenced by other components. By reading the .properties files associated with each component, Its Nucleus which figures out that which components are to be used in an application ,initializes them to their default values and how decides about how they connect to each other. This model makes it easier for the developers to build ATG applications by configuring and using the pre-built components instead of writing a lot of Java code from scratch.

4.
What is ATG Repository? 
 
Ans.ATG Repository refers to the ATG`s way of accessing the Database through programs. It is somewhat similar to what Hibernate offers, Seperating the Application Logic from that of Database. So Atg repository provides a fine grained abstraction between the application logic and Database. Thus it supports the ATG`s Data Anywhere paradigm, the application logic created by developers to interact with data need not change for any change in the source of that data. ATG repository architecture ensures that the source of the data is hidden behind the Dynamo Repository abstraction. It would be easy to change from a relational data source to another or to an LDAP directory since none of the application logic would need to change. Once data is retrieved from a data source it is transformed into an object-oriented representation. Manipulation of the data can then be done using simple getPropertyValue and setPropertyValue methods. The Repository API ties in closely with ATG’s targeting APIs, so you can retrieve items from the repository based on a variety of targeting rules, as well as retrieving specific identified items.

5.What is Atg Pipeline?
 
Ans Atg Pipeline is a variant of Servlet Pipeline, In an ATG pipeline the sequence of Programs are executed in a queue.
Below is the ATG servlet pipeline
/atg/dynamo/servlet/pipeline/DynamoHandler
/atg/dynamo/servlet/pipeline/TransactionServlet
/atg/dynamo/servlet/pipeline/PathAuthenticationServlet
/atg/dynamo/servlet/pipeline/URLArgumentServlet
/atg/dynamo/servlet/pipeline/CookieServlet
/atg/dynamo/servlet/pipeline/ContextPathServlet
/atg/dynamo/servlet/pipeline/ServletPathServlet
/atg/dynamo/servlet/pipeline/SessionServlet
/atg/dynamo/servlet/pipeline/DynamoServlet
/atg/dynamo/servlet/pipeline/SessionSaverServlet
/atg/dynamo/servlet/pipeline/FormLoginServlet
/atg/dynamo/servlet/pipeline/WebApplicationDispatcherServlet
/atg/dynamo/servlet/pipeline/CgiServlet
/atg/dynamo/servlet/pipeline/ServletPathDispatcher
/atg/dynamo/servlet/pipeline/FileFinderServlet
/atg/dynamo/servlet/pipeline/MimeTyperServlet
/atg/dynamo/servlet/pipeline/MimeTypeDispatcher
/atg/dynamo/servlet/pipeline/FileServlet
 It starts with the DynamoHandler which adds the Dynamo specific request and response objects to the request's context. Actually the list of servlets you will see depends on which modules you have running. This is the DAS configuration DPS and other modules can and do add more servlets to the pipeline.

6.What is ATG tag library? 
 
Ans. Atg tag library is a variant of jsp standard tag library. However atg provides its own set of tag libraries e.g. dsp,dspel, core

7.What is ATG DPS? What are its elements? 
 
Ans7. ATG DPS refers to the ATG Dynamo personalization system. It is driven by User Profile Data and business rules designed to deliver the right content to the right user.
There are three key elements of the ATG DPS personalization System.
  • 1. User Profile Management
  • 2. Content Targetting
  • 3. Targeted E-mail
  • User Profile Management
     
    When a person visits a website driven by ATG Dynamo Personalization Server(ATG DPS) website for the first time, The person is allowed to create its own User Profile.
    Once created, DPS stores that User`s Profile in its database repository. This profile contains a list of properties that describe the person`s characteristics, such as the name they entered in a registration form or the date of their last login. ATG DPS uses this profile information stored in its database repository to provided targeted content to each other. 

     
  • Content Targeting
     
      Targeting is the process of displaying
      • 1. Content items
      • 2. To a particular user
      • 3. At a particular time
      • 4. In a particular context and
      • 5. On a particular rule set.

      In the DPS rule based system, business managers create rule sets called content targeters that control how content is displayed on the web site.



      • Targeting Email
          DPS includes a Targeted Email service for composing and delivering personalized email using the same profile groups and targeting rules you use to deliver content on your web site. Also if you have Dynamo Scenario Server installed, you can use scenarios to deliver targeted email. You can use targeted email to perform below activities.
        • 1. Send a confirmation message to a new user who registers at your site.
        • 2. Notify frequent customers of special sales.
        • 3. Notify all users that have not logged into your site in several months that their accounts will be closed soon.
        • 4. Send out a mass mailing with each message tailored to its reciepient.
8.Which class to extend while creating ATG Droplets?
 
Ans8. DynamoServlet.java

9.What are ATG Form Handlers?
 
Ans9. ATG Formhandler is the intermediate class that comes in between a jsp form value and its bean class. They are there to evaluate the validity of form data before it is submitted, write data to and read data from a database or repository, and direct the user to different pages, depending on the results of the form submission

10.What is Base class for all ATG Formhandlers?

Ans10. GenericFormHandler.java

11.What is class Heirarchy for ATG Formhandlers?How to create a FormHandler?

Ans11. At the top of ATG formhandler class heirarchy there exists the DropletFormHandlerinterface. Then come, three different classes provided by Dynamo which extend this interface. They are as below
   atg.droplet.EmptyFormHandler
   atg.droplet.GenericFormHandler
   atg.droplet.TransactionalFormHandler
The EmptyFormHandler is the most simplest to implement. It implements the DropletFormHandler interface and defines blank body implementations of the methods in this interface.
GenericFormHandler extends EmptyFormHandler. It defines the simple implementations of the DropletFormHandler interface’s methods and the basic error handling logic. If errors occur in processing a form that uses GenericFormHandler, the errors are saved and exposed as properties of the form handler component. TransactionalFormHandler extends GenericFormHandler, It treats the form processing operation as a transaction. Though the methods invoked by this form handler are processed discretely, but their results are saved simultaneously. The beforeGet and afterGet methods do the transaction management. This establishes the transaction before any of your properties are set or handler methods are called.

No comments:

Popular Posts