Download presentation
Presentation is loading. Please wait.
Published byJonathan King Modified over 9 years ago
1
Fusebox ConferenceMaxim Porges Case Study: HotelsCorp.com Successfully Blending OO With Fusebox (and Other Cool Tricks)
2
Fusebox ConferenceMaxim Porges 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
Fusebox ConferenceMaxim Porges 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
Fusebox ConferenceMaxim Porges 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
Fusebox ConferenceMaxim Porges SAMS System Legacy System - SAMS DB Links Problems Business Logic in Forms Intimate Knowledge of DB required No clean separation between systems
6
Fusebox ConferenceMaxim Porges Why Objects? Changes here… Fusebox App …don’t force changes here!
7
Fusebox ConferenceMaxim Porges HotelsCorp.com Architecture SAMSSAMS Web API HotelsCorp API
8
Fusebox ConferenceMaxim Porges Creating the Object Model
9
Fusebox ConferenceMaxim Porges Fusebox 3.0 Architecture Designed in Adalon Architecture diagram available for questioning
10
Fusebox ConferenceMaxim Porges 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
Fusebox ConferenceMaxim Porges Skinning The Site Code sample from main fbx_Settings <!--------------------------------------------- Set up destination resource bundle variables This includes the default market effort ----------------------------------------------> <cfset request.G_SECURE_SERVER_URL = "http://webdev1mx.wgresorts.com/… <cfset request.G_AREA_ATTRACTION_ID_LIST = "28,31,33,47,50,51,35,… <cfset request.G_DESTINATION_DOMAIN = "http://webdev1mx.wgresorts… <cfset request.G_LP_ATTRACTION_TICKET_LINK = "#request.G_SELF_FUSE…
12
Fusebox ConferenceMaxim Porges Skinning The Site Sample Resource Bundle
13
Fusebox ConferenceMaxim Porges 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
Fusebox ConferenceMaxim Porges Asynchronous Search Asynchronous Processes/Threads ColdFusion doesn’t 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
Fusebox ConferenceMaxim Porges Search Process Diagram Search Submitted ColdFusion Server Store Search Java Thread CFM Search Code Returns Search Complete? META Refresh Search Results Search Ends
16
Fusebox ConferenceMaxim Porges // return object that’s brand new function getSomeObject() { return CreateObject(“component”, com.mywebsite.object”); } In Fuses, don’t explicitly reference object scope In Fuse: In Application File: // return object stored persistently in application scope function getSomeObject() { return application.someObject; } Lessons Learned
17
Fusebox ConferenceMaxim Porges That’s All, Folks! Thanks for watching! Please ask me any questions that you might have
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.