Audible Developer Orientation

Title page

Developers Orientation Program Document
Table of Content

Broadvision One – To –One Overview




Interaction Manager

 * The application server is an integrated part of the One-To-One Enterprise Interaction Manager.
 * The interaction Manager process the Web page request.
 * The IMs are also responsible for session management and caching.



Reference Document:


 * BroadVision One To One Enterprise Overview. PDF

Dev and Test



 * Audible.com

Store_id = 0

Store Name (or) Service Name = "Audible"

Application or IM name = "Adbl"

Script-root on IM boxes: /opt/bv1to1_var/script-root

Doc-root on http server: /opt/audible/htdocs


 * Audible.co.uk

Store_id = 105

Store Name (or) Service Name = "Audible_Uk"

Application or IM name = "Aduk"

Script-root on IM boxes: /opt/bv1to1_var/script-root/aduk

Doc-root on http server: /opt/audible/htdocs/aduk


 * Audible.de

Store_id =103

Store Name (or) Service Name = "Audible_De"

Application or IM name = "Adde"

Script-root on IM boxes: /opt/bv1to1_var/script-root/adde

Doc-root on http server: /opt/audible/htdocs/adde


 * Audible.Fr

Store_id = 104

Store Name (or) Service Name = "Audible_Fr"

Application or IM name = "Adfr"

Script-root on IM boxes: /opt/bv1to1_var/script-root/aduk

Session Logs

 * /opt/bv1to1_var/logs/im.dev.audible.com/sessionmgr.out.ddmmyy

Java Logs


 * /opt/bv1to1_var/logs/im.dev.audible.com/java.out.ddmmyy

Bvlog


 * /opt/bv1to1_var/logs/im.dev.audible.com/bvlogs.out.ddmmyy

Deployment tools – Snapper.
Snapper is an in-house built deployment tool used at Audible.

Javascript Vs JSP
Audible Web pages are built with BV Javascripts and Java Server Pages:

BroadVision Server Side Javascript


 * BV Java Scripts are server-side Javascript files.
 * They could contain HTML tags, client-Side Javascripts.
 * And Broadvision Components are referenced from these java scripts.
 * Before a script is run by an IM, they are pre-processed by the IMs and are stored in the Script cache.

All Javascripts are under /opt/bv1to1_var/script-root/ on IM boxes


 * Java Server Pages

BV has provided Java wrapper classed for all its components.

All JSPs are under /opt/bv1to1_var/script-root/site on IM boxes

Common page structure

The following common pages needs to be included in any new pages built. These pages initialize the necessary session variables and draws the Top and Left navigation.


 * Javascript


 * JSP

The bottom Stuff also includes the Site Catalyst code.

Audible Java Components (Page-View with Bean design pattern.)

 * The Architecture chosen for implementing the Java Components in BV 6.0 is Page-View with Bean design pattern.
 * This basic architecture involves direct request to a server page which invocate a worker bean that does the business logic and returns the dynamically generated output to be displayed within the HTML.



Common practices

 * All Web pages should be built using the Java Resource Bundles API.
 * This is to enable us to rollout the new functionalities to the different international sites(localized).
 * Error Messages – all error messages are editorial driven. The code should throw SiteException with a Error Code. The actual error message associated with this error code will be retrieved from the Editorials.

Java Components Directory Structure

 * All the Java Server pages are stored under the directory

$BV1TO1_VAR/script-root/site/


 * All Java source files are stored under the directory

$BV1TO1_VAR/java/


 * All Java class files are stored under the directory

Script-root/site/WEB-INF/classes


 * Commom Components

The commom components are stored under /com/audiblex_1_0/ directory

How to Compile Java Classes

 * Log onto im.dev.audible.com
 * cd /opt/bv1to1_var/java/build
 * sudo –u bv1to1 /bin/bash
 * ant
 * cp –r /opt/bv1to1_var/java/classes/com /opt/bv1to1_var/script-root/site/WEB-INF/classes/

Reference Document:


 * Audible Java Component Architecture.doc

Business entities

 * User profile
 * Product catalogue / product structure
 * Category structure
 * Sales Tables
 * Hardgood fulfilment
 * etc

Table structures
Reference Document:


 * http://http.dev.audible.com/inside_docs/Architecture/Web/

Audio books
A single Audio book
 * Terminals :

Long Audio books are split into parts and are sold as collections
 * Collection:

Newspapers / Magazines / Radio programs are called as subscriptions.
 * Subscriptions:

Media Type

Memberships

 * Audible currently provides monthly and annual memberships.


 * Memberships Plans


 * Audio Credits


 * AudioOrCollection
 * Allowed to purchase a terminal or collection with a single credit


 * Subscription
 * Allowed to purchase a 1-month subscription with a single credit

Types Of Memberships:

Each of the above plans can be made available in the following types.


 * Standard Membership
 * Free Trials
 * Paid Trials
 * Switch Upgrade
 * Switch Downgrade
 * Hardgood Combo
 * Retail Membership
 * Prepaid Listeners(Gift Products

HardGoods

 * MP3 Players


 * Accessories

Bundles

 * Multiple products could be bundled as a single product.


 * E.g.,

Gift Products

 * Gift Product
 * Claim Product

Reference Document:

New Content Deals

 * Content And Legal department works on getting new content deals.

Setup The Product

 * If New Providers:
 * Dev Team Setups the New Provider and Royalty Owners by Development


 * Content Team
 * Setup the products in CMC by Content Team
 * Categorize these products
 * These will be offline.


 * Development Team
 * Duplicate these products to the different Stores which have the rights to sell these products.
 * The prod ids will be appended with the Store Code.
 * E.g., BK_RAND_000200 will be duplicated as BK_RAND_000200DE, BK_RAND_000200FR, BK_RAND_000200UK

Create Cover Images
Design Team

Creates the Cover Images

Export The Audio
Audio Team:

Audio will be encoded and exported using the export tool.

Export tool will automatically turn the products "ONLINE".

CMC

 * This is an in-built content management tool.


 * Each store has its own CMC tool.

CMC Demo


 * [http://www.prod.audible.com/adbl/cmc/cmcFrontPage.jsp  http://www.prod.audible.com/adbl/cmc/cmcFrontPage.jsp

]

Series Child Generator Demo



DCC

 * This is BroadVision tool to setup content.

Editorials

 * Editorials is a BV module maintained using the DCC
 * Editorials are used to publish / present personalized content(HTML) to customers.

Communities
AudibleListner Community - Customers who have purchased the AL plans
 * Communities are setup based on Visitor ’ s profiles.
 * Communities are setup through DCC.
 * Communities are defined by a rule.
 * A community rule is a collection of criteria that defines membership in the community
 * E.g.,

US Community – Customers whose Country is "US"

US Male Community – Customers whose country is "USA" and Gender is "Male"

Rules

 * Rule Module is available in the Matching Group.
 * Business rules are setup to market and communicate to customers on the Web.
 * A Rule consists of a Rule Set, which in turn has a number of rules.
 * A rule in a Rule set could be setup based on Visitor Profile, Communities or Session Profiles.

Incentives

 * Store-wide sales and coupons are setup on the site using BV ’ s Incentive module.

Other Content Types
In addition to the above, Audible has created custom Content Types such as Good Listening, Best Picks etc.


 * Usage of Editorials on Homepage
 * Setting Up communities
 * Setting up coupons

Reference Document:


 * http://intraweb.audible.com/docs/bv60_docs/dccguide/dccugtoc.htm

What is an Action Code?

 * Audible business owners generate Action Codes(using the Action Code Tool) to be associated with every landing page, or links displayed on external partners Web Sites. This is to identify the traffic driven to Audible from partners Web Site.
 * Action Codes Start with the Company Prefix followed by random characters: PLMXXXXXXXX, where PLM is the code for Palm One.
 * All customers who come to Audible Site will be associated with an Action Code. (E.g., ADBLV0005RT567Y).
 * If the customer doesn ’ t have an Action Code, then an Anon Action Code will be assigned. (E.g., ANONIU87UY900).
 * The life of the Action Code is only for that session.

Source Code Vs. Action Code

 * The code with which the customer enters our site for the very first time is called the Source Code. The subsequent entries are called Action Code.
 * The original Source Code is cookied for 60 days.

What is the purpose of Source Code?

 * Source Codes and Action Codes are used to record where a customer has come from and his actions in Audible Site.
 * Bounties are paid to partners based on Source Codes and Action Codes.

A Sample Scenario:

 * The customer could have come to our site through Amazon for the first time, but didn ’ t register with Audible (this Action Code will be cookied).
 * Next time he could have come through a landing page from one of our partner site and register with Audible.
 * If the customer had registered with 60days since he came to Audible Site through Amazon, the Amazon action code will be his SOURCE CODE and will be recorded in BV_USER_PROFILE and AW_USER_ACTIONS table.
 * If he comes to Audible after 60days since he first visited our Site, then his current Action Code will be recorded as his Source Code.
 * The Action Code associated with the partners landing page is the ACTION CODE for the life of that session. Any purchase made during this session will be associated with this Action Code in MR_PRICED_ITEMS table.