Creating an e-commerce web site is always a challenge, but it's even a bigger challenge if its a global website for a multinational firm in a heavily regulated industry. Thousands of products, hundreds of locales, different regulations, different prices, and different marketing collateral. Attend this session to see how we wired together E-Business Suite, WebLogic Portal, Universal Content Management, Identity Management, and Enterprise Search to meet the global business needs.
Top 10 Most Downloaded Games on Play Store in 2024
Creating a Global E-Commerce Website With E-Business Suite and Fusion Middleware
1. Creating a Global eCommerce Site
with EBusiness Suite and Fusion
Middleware
Brian “Bex” Huff
Chief Software Architect
Oracle ACE Director
Monday, October 17, 2011
2. The Project
The Web Site Redesign (WSR) project
• Goal: completely re-vamp a 10-year old product website
The company
• Multinational firm, heavily regulated industry
• Fortune 500 company
The team
• Approximately 80 people
My role
• WebCenter architect, designer, and developer
2
Monday, October 17, 2011
3. High-Level Requirements
Fast and easy contribution by business owners
• Mostly public content: secured edits
Workflow process for all content changes
• Track who changed what, when, why
Support for multiple regions/countries locales
Applications and content on the same pages
• E-Commerce ordering tools
• End-user calculators and other small applications
Global Search Engine Optimization: “Google Friendly” URLs
3
Monday, October 17, 2011
4. The Challenges
Different products available in different markets
• Users must never see a product they cannot purchase
Different regulations per region
• You can’t say that in Germany!
Taxonomy was surprisingly critical
• Incorrectly tagged content could lead to fines!
What’s the best way to blend content and applications?
4
Monday, October 17, 2011
5. More Challenges
60+ product families
• Each has a “business owner”
IE 6 must be supported
• Unfortunately...
Different prices for different customers / locations
5
Monday, October 17, 2011
6. The Stack!
Mostly Oracle
Infrastructure
• Linux, Oracle Database, GFS
Framework
• WebLogic Portal, SPRING, AJAX, and JavaScript
Back-End
• Enterprise Applications and middleware
Security
• Several identity management applications
6
Monday, October 17, 2011
8. Infrastructure
Oracle Enterprise Linux
• Why not?
Oracle Database 11g
• What else?
Red Hat Global File System (GFS)
• Needed a shared file system in the SAN
• Multiple nodes in the system had to share files
Load Balancers
• Hardware and software (PEN)
8
Monday, October 17, 2011
9. Framework
WebLogic Application Server and Portal
• 3-node cluster for main web site, and admin interface
• 2-node cluster each for UCM, OID, IDOL, everything else!
“WSR Admin” portal
• Configuration, customers, orders, product launches
SPRING
• Open source toolkit for creating web front-ends in Java
JavaScript libraries
• jQuery toolkit for front-facing
• ExtJS for Admin interface
9
Monday, October 17, 2011
10. Back-End Applications: Existing
E-Business Suite
• Contracts, customers, products for sale
Product Information Management (QAD/FullTilt)
• Product specs: size, weight, etc.
• Categorization into product catalogs
• Localizable, but unfortunately not normalized
Documentum
• Repository for technical manuals
• “Tactical” integration: content exported, but repository remains
• Full consolidation out of scope of current project!
10
Monday, October 17, 2011
11. Back-End Applications: New
WebCenter Content (UCM) 10gr3
• Main content repository
Site Studio 10gr4
• Built on top of UCM
• Site navigation, web content, images, CSS, JS
• Has the “Open WCM” web services we need
Autonomy Idol
• Enterprise Search
11
Monday, October 17, 2011
12. Apps Challenges
Speed was critical!
• Needed to make custom web services to query eBiz tables directly
Multiple search indexes
• One per locale: critical the people only search in their locale!
Blending the data together
12
Monday, October 17, 2011
13. Security
Active Directory
• Used for internal employees
• Integration needed for UCM and Admin site rights
Oracle Internet Directory
• Used for external customers
• Needed to log in, make orders, view pages
Oracle Access Manager
• Single-Sign-On
13
Monday, October 17, 2011
15. Integration Strategy
Portal front-end blends everything together
Content stored and managed by WebCenter Content
• Marketing literature for products
• General web pages, contact us, literature downloads, video
• Localized versions of web assets
Site navigation controlled by Site Studio
• Opt-in, Opt-out
Product information controlled by QAD
• Localized and normalized there
• Export the raw data to the portal’s database
15
Monday, October 17, 2011
16. Integrations
Portal - EBuisness Suite
• Some TIBCO Web Services, some custom Web Services
• Create Order, Order Details, Item Price services
• Consumed via AJAX from portlet
Portal - Product Info / QAD
• PIM data not fully normalized
• Get a “dump” of raw data nightly
• Organize it in WSR database in more useful ways
• Create a “view” on this table, to drive UCM metadata tags
• Tree-control to “tag” a page as belonging to a product catalog
16
Monday, October 17, 2011
17. Integrations, cont.
Portal - UCM
• Used “Open WCM” Web Services and a custom servlet
• Did not use Site Studio for External Applications (SSXA)
• Needed localization features unavailable in SSXA
• Used RIDC bean
• Cached with EHCache
• Taxonomy controlled by UCM
Portal - Database
• Spring DOA, and hand-written SQL
• Tried Hibernate, ditched it half way through
• ORM frameworks look good on paper... but...
• Only worth the effort if using a 2nd layer cache, which we weren’t
17
Monday, October 17, 2011
18. Search Engine
IDOL needed one repository per locale
• Also needed STRICT adherence to taxonomy
Did not have a UCM connector
• HTTP web spider would not be fast enough for multiple locales
Custom connector
• Database view on Revisions and DocMeta table
• Scheduled task to watch for new content
• Determined the URL based on xWebSiteSection
• Determined taxonomy/locale from other metadata
18
Monday, October 17, 2011
19. “Admin” Portal
Custom interface to E Business suite and OID
• Create users, manage email templates
• Enable products to be for sale online in specific regions
• Manage / edit orders
• Create a new “region” to enable sales / new website
• Create new training class schedule / locations
• Customer email subscriptions
• Custom reports
19
Monday, October 17, 2011
20. Custom Portal Controller
Import the “Site Studio Navigation” file from UCM/Site Studio
• Contains the full navigation for the site
• All content references, and “tokens” representing specific AJAX apps
Generate site navigation for each locale
• Inherit navigation/content from the “global” locale
• Opt in / opt out of specific pages
Inject AJAX applications when “Tokens” found on page
• Users can select which AJAX app they want
• Data files “tagged” with a product ID or catalog
• Auto-generated AJAX
• Some templates
20
Monday, October 17, 2011
22. Security Integration
Most was out-of-the-box
• OAM / OID works well with WebLogic and UCM
• Some issues with OAM and non-signed applets
Some customizations needed
• Simplified “customer info” editor in the Admin portal
Custom AJAX controller
• Security through AJAX is tricky
• Sessions expire while still on the page
• AJAX needs to handle session expiration, and redirect
• Made custom OAM AccessGate
22
Monday, October 17, 2011
23. Data Cache
Use the distributed EHCache code
Extremely easy to make existing SPRING code cachable
@Cacheable(cacheName="ucmCache")
public String renderPlaceholderByDocName(IdcContext userContext,
! String docName, String placeholderDefinitionName, String siteId,
! String nodeId, boolean isContrib, String userLocale) {
...
}
23
Monday, October 17, 2011
24. Web Cache
Use front-end Apache server with mod_proxy
Problem: entire web site is HTTPS
• Browsers by default do not cache secure traffic
• Problem: with all the JavaScript libraries, some pages were 1 MB!
• Caching those static resources critical
Apache server tuning
• For all cachable content, set Cache-Control: public
• Do not cache content from AJAX controller
• Force AJAX to reload on every page to avoid stale content
• mod_deflate
• GZIP-compress rarely changing text files (JS/CSS/XML)
24
Monday, October 17, 2011
29. Lessons Learned
Hire a team that’s done it before
• Primary reason behind previous “false starts”
Avoid GFS like the plague!
• Extremely difficult to set up properly
• A file locking snafu would seize up all nodes in the system until rebooted!
More frequent code reviews, and project patterns
• Could have avoided some
• Tough to do, when the team’s under a tight deadline
OAM/WebGate has issues with non-signed Applets
• UCM side was tricky to get working with SSO
29
Monday, October 17, 2011
30. If I Had To Do It All Over Again...
Straight WebLogic for front-end, no Portal
• Admin interface used portlet features, but
• Front-end web site was all in one SPRING portlet
• Google-Friendly URLs would be easier
• AJAX controller would be easier
• Oracle really needs a lightweight Java framework for websites...
Use Diesel Point for search engine
• IDOL was overkill, both in cost and features used
Focus on ONE JavaScript framework, and keep it lean
• Because of the “plugin” architecture, jQuery grows like weeds
• Pages can become HUGE relatively quickly
30
Monday, October 17, 2011
31. Questions?
My Company: http://bezzotech.com
My Blog: http://bexhuff.com
My Self: bex@bezzotech.com
31
Monday, October 17, 2011