Developers Orientation Program Document
Table of Content
BroadVision Application Server
Broadvision One – To –One Overview
- 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.
- BroadVision One To One Enterprise Overview. PDF
Dev and Test
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
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
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
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
|Doc-root on http server: /opt/audible/htdocs/aduk|
Deployment tools – Snapper.
Snapper is an in-house built deployment tool used at Audible.
C. Web Site Technologies
- 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.
- Java Server Pages
|BV 6.0 onwards supports Java Server Pages.|
BV has provided Java wrapper classed for all its components.
|Most of the new applications at Audible are built using Java Server Pages.|
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.
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.
- 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
- All Java source files are stored under the directory
- All Java class files are stored under the directory
- 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
- cp –r /opt/bv1to1_var/java/classes/com /opt/bv1to1_var/script-root/site/WEB-INF/classes/
- Audible Java Component Architecture.doc
Application layer / business logic layer
Common BV classes and controllers
- User profile
- Product catalogue / product structure
- Category structure
- Sales Tables
- Hardgood fulfilment
Referential integrity resolved in application layer, not in Oracle!
- Terminals :
A single Audio book
Long Audio books are split into parts and are sold as collections
Newspapers / Magazines / Radio programs are called as subscriptions.
|Audio books can fall under one for these media / program types|
|Book – bk|
|Radio – rt|
|Speeches – sp|
|Lectures - le|
|Newspaper – nb|
- Audible currently provides monthly and annual memberships.
- Memberships Plans
|Audible Listener Light||2 Books|
|Audible Listener Frequent||5 Books|
|Audible Listener Serious||5 Books, unlimited 1-month subs, unlimited back issues|
|Audible Listener Daily||Unlimited 1-month subs, unlimited back issues|
|Audible Listener Basic Listener||1 Book, 1 1-month Sub|
|Audible Listener Premium Listener||2 Books|
|Value Listener||1 Book|
|Audible Listener Palm Listener||1 Book, 2 a-month subs|
|Audible Listener Ultimate||12 Books (annual plan)|
|Audible Listener Gateway Listener||1 Book, 2 a-month subs|
|Audible Listener 0.1||0 Subs, 1 Book|
|Audible Listener 0.2||0 Subs, 2 Book|
|Audible Listener 0.3||0 Subs, 3 Book|
|Audible Listener 1.0||1 Subs, 0 Book|
|Audible Listener 1.1||1 Subs, 1 Book|
|Audible Listener 1.2||1 Subs, 2 Book|
|Audible Listener 1.3||1 Subs, 3 Book|
|Audible Listener 2.0||2 Subs, 0 Book|
|Audible Listener 2.1||2 Subs, 1 Book|
|Audible Listener 2.2||2 Subs, 2 Book|
|Audible Listener 2.3||2 Subs, 3 Book|
- Audio Credits
- Allowed to purchase a terminal or collection with a single credit
- 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
Bulk Listeners (or) Samplers
|Bulk Listeners are Non-Renewable memberships.|
- MP3 Players
- Multiple products could be bundled as a single product.
|Membership with Free Samples.|
- Gift Product
- Claim Product
Product Naming Convention
|6 or more random character|
RAND – Random House
|2 letters- represent the Media Type/product Type|
BK - Books(Terminals/collections)
(12 – Month Subscriptions)
(1 – Month Subscriptions)
(Peer Group Parent)
|NB_NYTS_00001 Series Parent|
Life Cycle Of a Product
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
Creates the Cover Images
|Snaps these images to the Http servers through the Snapper Tool|
|Images will be named after their Product Ids.|
Export The Audio
Audio will be encoded and exported using the export tool.
Export tool will automatically turn the products "ONLINE".
Titles are Live On the Site
Tools To Setup Products
- This is an in-built content management tool.
- Each store has its own CMC tool.
- [http://www.prod.audible.com/adbl/cmc/cmcFrontPage.jsp http://www.prod.audible.com/adbl/cmc/cmcFrontPage.jsp
Series Child Generator Demo
- This is BroadVision tool to setup content.
- Editorials is a BV module maintained using the DCC
- Editorials are used to publish / present personalized content(HTML) to customers.
- 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
AudibleListner Community - Customers who have purchased the AL plans
US Community – Customers whose Country is "US"
US Male Community – Customers whose country is "USA" and Gender is "Male"
- 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.
- 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
E. Website Flow And Features
Special eCommerce features: Listener plans, subscriptions
Customer acquisition flows (anon, landing pages, partnersites) etc
Registration (Wall Garden Vs Traditional)
Browse titles, categories, search
F. Audible buy Process
G. Action Codes
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.