Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Creating a Global E-Commerce Website With E-Business Suite and Fusion Middleware


Published on

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.

Published in: Technology, Business
  • Ecommerce Business Suite -
    Are you sure you want to  Yes  No
    Your message goes here

Creating a Global E-Commerce Website With E-Business Suite and Fusion Middleware

  1. 1. Creating a Global eCommerce Site with EBusiness Suite and Fusion Middleware Brian “Bex” Huff Chief Software Architect Oracle ACE DirectorMonday, October 17, 2011
  2. 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 2Monday, October 17, 2011
  3. 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 3Monday, October 17, 2011
  4. 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? 4Monday, October 17, 2011
  5. 5. More Challenges  60+ product families • Each has a “business owner”  IE 6 must be supported • Unfortunately...  Different prices for different customers / locations 5Monday, October 17, 2011
  6. 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 6Monday, October 17, 2011
  7. 7. Stack Diagram 7Monday, October 17, 2011
  8. 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) 8Monday, October 17, 2011
  9. 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 9Monday, October 17, 2011
  10. 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! 10Monday, October 17, 2011
  11. 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 11Monday, October 17, 2011
  12. 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 12Monday, October 17, 2011
  13. 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 13Monday, October 17, 2011
  14. 14. Security Configuration 14Monday, October 17, 2011
  15. 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 15Monday, October 17, 2011
  16. 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 16Monday, October 17, 2011
  17. 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 17Monday, October 17, 2011
  18. 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 18Monday, October 17, 2011
  19. 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 19Monday, October 17, 2011
  20. 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 20Monday, October 17, 2011
  21. 21. Custom Navigation Editor App 21Monday, October 17, 2011
  22. 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 22Monday, October 17, 2011
  23. 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) { ... } 23Monday, October 17, 2011
  24. 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) 24Monday, October 17, 2011
  25. 25. Technical Architecture 25Monday, October 17, 2011
  26. 26. Product Catalog 26Monday, October 17, 2011
  27. 27. AJAX Embedded Application 27Monday, October 17, 2011
  28. 28. Business-Controlled Content 28Monday, October 17, 2011
  29. 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 29Monday, October 17, 2011
  30. 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 30Monday, October 17, 2011
  31. 31. Questions?  My Company:  My Blog:  My Self: 31Monday, October 17, 2011