1 / 17

Case Study: HotelsCorp.com

Case Study: HotelsCorp.com. Successfully Blending OO With Fusebox (and Other Cool Tricks). 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

rosalie
Download Presentation

Case Study: HotelsCorp.com

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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+ Maxim Porges

  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 (!) Maxim Porges

  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) Maxim Porges

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

  6. Fusebox App Why Objects? Changes here… …don’t force changes here! Maxim Porges

  7. HotelsCorp Web App HotelsCorp.com Architecture SAMS SAMS Web API HotelsCorp API Maxim Porges

  8. Creating the Object Model Maxim Porges

  9. Fusebox 3.0 Architecture • Designed in Adalon • Architecture diagram available for questioning Maxim Porges

  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 Maxim Porges

  11. Skinning The Site • Code sample from main fbx_Settings <!--------------------------------------------- Set up destination resource bundle variables This includes the default market effort ----------------------------------------------> <cfset request.G_DESTINATION_ID = 2> <cfset request.G_LP_COOKIE_DOMAIN = ".wgresorts.com"> <cfset request.G_SECURE_SERVER_URL = "http://webdev1mx.wgresorts.com/… <cfset request.G_SECURE_SERVER_DOMAIN = ".wgresorts.com"> <cfset request.G_DEFAULT_LP_TEXT_ID = "gatlinburg"> <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… Maxim Porges

  12. Skinning The Site • Sample Resource Bundle Maxim Porges

  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) Maxim Porges

  14. 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. Maxim Porges

  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 Maxim Porges

  16. Lessons Learned • In Fuses, don’t explicitly reference object scope <cfset object = request.objectName> • In Fuse: <cfset object = getSomeObject()> • In Application File: <cfscript> // return object that’s brand new function getSomeObject() { return CreateObject(“component”, com.mywebsite.object”); } </cfscript> <cfscript> // return object stored persistently in application scope function getSomeObject() { return application.someObject; } </cfscript> Maxim Porges

  17. That’s All, Folks! • Thanks for watching! • Please ask me any questions that you might have Maxim Porges

More Related