Thursday, May 29, 2014

Oracle ATG Core Components

Oracle ATG Core Components

    Oracle ATG has the following core components as part of OTB(Out Of The Box) framework. Detailed description about these components follows.
  • DAF Dynamo Application Framework - which consists of following main ingredients.
    • Nucleus
      • Nucleus is the central registry for all java components ATG requires. It is a servlet which loads on server startup and responsible for initializing java objects based on supported properties files. It keeps track of these objects using path of directory from /config. Example. If we have MySampleService.properties file located at com/myapp/ location in config directory, it will be represented by /com/myapp/MySampleService component. This component will be initialized by nucleus using properties specified in file MySampleService.properties.
      • Whenever nucleus gets a reference to an component, it searches for that .properties file in registry, it then finds class name mentioned in the properties file with $class   property and reads all properties which needs to be initialized. It then creates instance of that class and tags it with the path name. 
      • Components can be of different type, they exist in nucleus for that point of time. Example. Global components live till object is not destroyed by nucleus, i.e. till server is not shut down. Similarly, session scoped components are alive till session expired, they are tagged with unique session identification number. GenericSessionManager component holds all session references.
    • Repositories
      • Repository in ATG is data anywhere architecture. It lets you define the structure of data at logical level, i.e. independent of underlying database. It provides wide range of API to deal with different types of data. Also, it has very good caching mechanism OTB and provided APIs for integrating third party caching mechanisms like Oracle Coherence.
      • Repository data in ATG is mainly distinguished in versioned and non-versioned data. Catalog, pricing, promotions is an example of versioned and Order, Profile of non-versioned. Versioned repositories are maintained in BCC and business users are required to change data accordingly.
      • Also, if required, you can add your custom repositories and its easy to configure according to needs.
    • Tag Libraries
      • ATG supports JSP and contains two tag libraries JSTL and DSP. JSTL is well known in J2EE world. However, DSP tag library is designed  to access all data types in ATG’s Nucleus framework.
      • One of the enhancements DSP tags has is its support for the passing of object parameters between pages. It is advised that use DSP tags wherever ATG related operations are and otherwise use JSTL for normal web page operations.
  • DPS ATG Personalization Module
    • ATG Provides personalization as part of its framework. It has very good personalization engine which targets content to specific set of users as basic requirement in personalization. It provides Targeters, Content Groups, Profile or User segments, Scenarios, Slots. All in together give users personalized experience.
    • Content groups have content which we want to show. It may contain, repository item, media item, or file asset etc.
    • Profile or User segments have the set of users defined by a condition. For example, all users between age 25 to 35.
    • Targeter does the job of targeting or joining content group and user segments. In targeter different rules can be specified to show different contents to different users. 
    • Note that, Content Groups, User Segments and Targeters are managed through BCC by business users.
  • DSS ATG Scenarios Module
    • Scenarios and slots are an extension to targeting capabilities of the Personalization framework. Scenarios can be used to manage advanced conditions based on events and actions.
    • We can think of scenario as a set of chained operations performed in manner of event followed by specific actions.
    • Example, if we want an user to send promotional emails after used visits the site and doesn't come back in certain time.
These basic components may provide a platform for an ecommerce application with ATG framework..Keep watching this space.

Monday, May 19, 2014

This blog is about my understanding and study of ATG. I will be writing my observations about various topics such as Commerce, Profile Management, Content Administration, Checkout, Search etc.

Your suggestions / comments are welcome and will help improve my knowledge.

-Ashish Kulkarni.