Case Study: HotelsCorp.com - PowerPoint PPT Presentation

About This Presentation
Title:

Case Study: HotelsCorp.com

Description:

Maxim Porges. Case Study: HotelsCorp.com ... Maxim Porges. Skinning The Site. Each web site is 'skinned' through ... Maxim Porges. Tying the Objects To Fusebox ... – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 18
Provided by: michael118
Category:
Tags: hotelscorp | case | com | maxim | study

less

Transcript and Presenter's Notes

Title: Case Study: HotelsCorp.com


1
Case Study HotelsCorp.com
  • Successfully Blending OO With Fusebox (and Other
    Cool Tricks)

2
HotelsCorp.com At A Glance
  • The Business Plan
  • Generate hotel bookings online, undercut big
    names (Expedia, Travelocity)
  • Convert a percentage of bookings to tours
  • Market through PPC on Search Engines
  • Hotel revenue pays for the advertising
  • Create location skin-able web sites
  • N Landing Pages - Cater to Special Interests
  • Sell hotels for revenue, tours for Timeshare
  • Brings cost-per-tour down to 60 from 150

3
HotelsCorp.com At A Glance
  • Technical Challenges
  • Legacy Integration - Reservation System and Sales
    and Marketing System (S.A.M.S)
  • No API to S.A.M.S. - closed system
  • First CFMX Project
  • First OO with Fusebox Project
  • Delivery expected in 3 months (!)

4
Implementation Choices
  • FB 3.0 on ColdFusion MX
  • Multi Aliased Circuits (from 2002 FB Conf)
  • Oracle back end (for web site)
  • Oracle PL/SQL API to legacy system
  • CFC Abstraction Layer
  • Java for Asynchronous Search and Form Validation
    System
  • A smattering of JavaScript (ugh)

5
Legacy System - SAMS
SAMS System
DB Links
  • Problems
  • Business Logic in Forms
  • Intimate Knowledge of DB required
  • No clean separation between systems

6
Why Objects?
Changes here
dont force changes here!
7
HotelsCorp.com Architecture
SAMS
SAMS Web API
HotelsCorp API
8
Creating the Object Model
9
Fusebox 3.0 Architecture
  • Designed in Adalon
  • Architecture diagram available for questioning

10
Skinning The Site
  • Each web site is skinned through LAF and code
  • orlando.hotelscorp.com
  • smokies.hotelscorp.com
  • vegas.hotelscorp.com (coming soon)
  • All Fusebox code is reusable between destinations
  • Identical process flows
  • Changes to codebase affect all sites at once

11
Skinning The Site
  • Code sample from main fbx_Settings

lt!---------------------------------------------
Set up destination resource bundle variables
This includes the default market
effort -------------------------------------------
---gt ltcfset request.G_DESTINATION_ID 2gt ltcfset
request.G_LP_COOKIE_DOMAIN ".wgresorts.com"gt ltcf
set request.G_SECURE_SERVER_URL
"http//webdev1mx.wgresorts.com/ ltcfset
request.G_SECURE_SERVER_DOMAIN
".wgresorts.com"gt ltcfset request.G_DEFAULT_LP_TEXT
_ID "gatlinburg"gt ltcfset request.G_AREA_ATTRACTI
ON_ID_LIST "28,31,33,47,50,51,35, ltcfset
request.G_DESTINATION_DOMAIN "http//webdev1mx.w
gresorts ltcfset request.G_LP_ATTRACTION_TICKET_LI
NK "request.G_SELF_FUSE
12
Skinning The Site
  • Sample Resource Bundle

13
Tying the Objects To Fusebox
  • Main objects stored in the application scope as
    Singletons
  • The request scope is your friend
  • JSP forwarding in CFMX
  • Abstracts persistence implementation (i.e.
    session, cookie, DB)

14
Asynchronous Search
  • Asynchronous Processes/Threads
  • ColdFusion doesnt allow you to kick off your own
    threads
  • Wrote a simple Java object that would open a URL
    in a Java Thread and die on completion
  • Used for asynchronous search in HotelsCorp.com.

15
Search Process Diagram
ColdFusion Server
Search Submitted
Store Search
Returns
Java Thread
?
Opens URL
CFM Search Code
Search Ends
META Refresh
Search Complete?
Search Results
16
Lessons Learned
  • In Fuses, dont explicitly reference object scope
  • ltcfset object request.objectNamegt
  • In Fuse
  • ltcfset object getSomeObject()gt
  • In Application File

ltcfscriptgt // return object thats brand
new function getSomeObject()
return CreateObject(component,
com.mywebsite.object) lt/cfscriptgt
ltcfscriptgt // return object stored
persistently in application scope function
getSomeObject() return
application.someObject lt/cfscriptgt
17
Thats All, Folks!
  • Thanks for watching!
  • Please ask me any questions that you might have
Write a Comment
User Comments (0)
About PowerShow.com