2. ATG Framework
The Dynamo Application Framework (DAF) is the base platform
layer. It provides a component development environment made up
of JavaBeans and JavaServer Pages (JSPs). Developers assemble
applications out of component beans (based on standard ATG
classes or custom Java classes) by linking them together through
configuration files in Nucleus, ATG’s open object framework.
DAF
Java Beans
Java Server Pages
3. ATG Framework
DAF runs as a J2EE Web application , and ATG support its execution on Dynamo
Application Server (DAS), IBM Websphere BEA WebLogic and Jboss Application
Server.
DAF contains many of the important and innovative technologies that are used by
ATG applications. Two of the most important are Nucleus and Data Anywhere
Architecture.
Nucleus: It is a fast , lightweight component model which implements the Inversion of
Control and Dependency Injection Patterns.
Data Anywhere Architecture: It is an object/relational mapping, data persistence
and caching technology, both of which help to build scalable, flexible Web
applications.
4. ATG Framework
Multi-channel support : DAS includes full support for Wireless Application
Protocol(WAP) standards, including Wireless Markup Language (WML),
compact HTML, and Short Messaging Service(SMS). DAS is configured out of
the box to handle requests from WAP-enabled devices just like it handles
requests from conventional browsers.
Extensible Markup Language(XML) support: DAS incorporates the Apache
Xerces XML parser and provides several Dynamo servlet beans for
transforming XML documents into Java Objects.
Session Management: DAS provides advanced session management
facilities for web sites running multiple Dynamo severs. Session Failover lets
you redirect user requests to another Dynamo server running a copy of the
original application.
Dynamic load balancing: DAS is equipped with its own dynamic load
balancing facility, the dynamo load manager, which automatically
allocates the load across available servers.
5. Form Handlers :
An ATG form is defined by the dsp:form tag, which typically encloses DSP tags that specify
form elements, such as dsp:input that provide direct access to Nucleus component
properties. Find below a sample dsp:form tag.
<dsp:form action="/testPages/showPersonProperties.jsp" method="post" target="_top">
<p>Name: <dsp:input bean="/samples/Person.name" type="text"/>
<p>Age: <dsp:input bean="/samples/Person.age" type="text" value="30"/>
<p><dsp:input type="submit" bean="/samples/Person.submit"/> value="Click to submit"/>
</dsp:form>
ATG provides hundreds of readymade form handlers for performing all sorts of tasks, like
updating a customer profile(CommerceProfileFormHandler), managing your shopping
cart(CartModifierFormHandler), checking out(ExpressCheckoutFormHandler), or interacting
with a repository(RepositoryFormHandler).
Following are the tasks assigned to Form Handlers by ATG :
Validate data before it is submitted.
Detect missing information and display appropriate messages to the user.
Direct users to different pages depending on form submission results.
Read and write database or repository data
6. • Form Handler Classes:
Form handlers are componnets that you typically build from one of several
ATG form handler classes. All provided form handler classes are subclasses of
atg.repository.servlet.GenericFormHandler, and inherit its properties and
methods.
Form Handler Purpose
SimpleSQLFormHandler Works with form data that is stored in a
SQL database.
RepositoryFormHandler Saves repository data to a database.
ProfileFormHandler Connects forms with user profiles
stored in a profile repository.
SearchFormHandler Specifies properties available to a
search engine
7. Form Error Handling:
A web application must identify and gracefully handle errors that might occur on
form submission.
If the form uses a form handler of class GenericFormHandler or the one of its
subclasses, exceptions that occur during form processing are saved to one of the
form handler component properties.
Property Purpose
formError Boolean that is set to true if any errors
occur during form processing
formExceptions A vector of the exceptions that occur
during form processing
propertyExceptions A read-only property that returns a
dictionary of sub properties, one for
each property set by the form.
8. Commerce Pricing Services:
Commerce pricing services include a set of standard features that
are designed to handle the pricing demands of most websites. If
your sites require additional functionality, you can write a new
implementation of the many public pricing API’s that the product
supplies.
Oracle ATG Web Commerce support two pricing methods for use
on products pages:
Static Pricing
Dynamic Pricing
9. Commerce Pricing Services:
Static Pricing: Each item in the catalog has a list price stored in the
listPrice property of the catalog repository(optionally, each item
can also have a sale price). You display the price on the
appropriate site pages, and the commerce pricing services use that
price as a base for calculating order totals, shipping costs, and sales
tax.
Dyanamic Pricing: Programmatically determines the price. Dynamic
princing always used on the shopping cart and purchase process
pages, but can also be used on the product pages if necessary.
These are both forms of SKU-based pricing ,as opposed to pricing
based on price lists.
Using dynamic pricing on a product page can cause a significant
decrease in performance compared to using static pricing.