Enterprise Integration with ColdFusion Sean A Corfield
Upcoming SlideShare
Loading in...5

Enterprise Integration with ColdFusion Sean A Corfield






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Enterprise Integration with ColdFusion Sean A Corfield Enterprise Integration with ColdFusion Sean A Corfield Presentation Transcript

  • Enterprise Integration with ColdFusion
      • Sean A Corfield
      • Director of Architecture
      • Macromedia, Inc.
  • Goals
    • Explain some of the history behind Macromedia's use of ColdFusion, both on the web and behind it
    • Show you how Macromedia is using ColdFusion “behind the web” for integration tasks
    • Inspire you to think outside the “web box” and look for new problems to solve with ColdFusion MX 7
  • Who Am I?
    • Senior Architect for Macromedia IT (since mid-2000)
    • A ColdFusion developer (since late-2001)
    • ...and Java developer (since early-1997)
    • An advocate of standards and best practices (since birth?)
  • Agenda
    • Setting the scene – a brief history of macromedia.com
    • A look at our Online Store architecture
    • Introducing Oracle Applications (ERP)
    • Additional systems join our Hub'n'Spoke world
    • Evolving our Online Store architecture
    • Upcoming changes and future plans
    • Wrap-up
  • macromedia.com BC
    • B efore C oldFusion...
    • macromedia.com was built with BroadVision and Perl
    • We created flat files full of CSV data and ran batch jobs to move those files around and load them into databases
  • macromedia.com BC
  • 2001 A ColdFusion Odyssey
    • Macromedia acquired Allaire
    • I formed Web Technology Group to rewrite macromedia.com using ColdFusion
    • ColdFusion 5 was the (new) current release
    • We learned ColdFusion on Neo using pre-alpha builds and then alphas and betas – it was “fun”...
    • We also picked JMS (Java Message Service) and XML as core technologies for data transfer between the website and the various back end systems, using Java “adapters”
  • macromedia.com – CFMX 6.0 U3
    • macromedia.com launched in early March 2003 on ColdFusion MX 6.0 Updater 3
    • About a dozen ColdFusion applications
    • BroadVision still powered our Online Stores
    • Perl still powered many of the simple information forms
    • Later that year we launched the Flash / ColdFusion Online Stores for Europe with BroadVision for non-Flash users
  • macromedia.com – CFMX 6.0 U3
  • macromedia.com – CFMX 6.1
    • We were running Red Sky just before launch (August 2003)
    • We adopted Mach II as the Web Team standard (2004)
    • We continued to write more applications (currently around 50 applications, a quarter are Mach II apps)
    • We launched HTML versions of our Online Stores and rolled them out worldwide (2003-2004)
    • BroadVision was finally gone
    • Some Perl forms remain (it ain't broke!)
  • macromedia.com – CFMX 6.1
  • Online Store Architecture I
    • Tiered application architecture:
      • Front end has both Flash & HTML versions
      • Business logic implemented with ColdFusion (using the same CFCs, and Mach II for HTML version)
      • Back end used Perl scripts to manage fulfilment and settlement functionality
    • CSV (tab-delimited) files moved by FTP to ERP system
  • Online Store Architecture I
  • ERP – Oracle Applications
    • Rolled out new ERP system (March 2004)
    • Used OAGIS 7.2.1 standard XML for order management file exchanges (instead of CSV)
    • Still FTP based batch jobs (since everything is file-based)
    • Some vendors (including OLS) still provided CSV
    • ColdFusion application written to manage all the XML and CSV file exchanges and automate the FTP processes
  • ERP – Oracle Applications
  • Breeze Live Online Sales
    • 2004 also saw Breeze Live become available for purchase online as well as hosted solution
    • Decided to leverage JMS rather than Online Store method
    • Sales orders transmitted as XML over JMS in near real time
    • Developed JMS event gateway for ColdFusion MX 7
    • Uses exactly the same order processing CFC as batch files
  • Breeze Live Online Sales
  • salesforce.com (late 2004)
    • Implemented sf.com for sales leads
    • Web site captures leads, publishes them using JMS
    • Web Service adapters (.NET) exchange data with sf.com
    • JMS used to exchange data between adapters and other systems: web site, support, marketing, analytics
  • salesforce.com (spring 2005)
    • We rewrote all of the .NET adapters in ColdFusion (.NET libraries from the JMS vendor were unreliable)
      • Rough guesstimate: building adapters in CF is between four and eight times easier than either Java or .NET based on development times (Java and .NET are about par)
    • Leverage the CFMX 7 JMS event gateway
    • Leverage improved web service support in CFMX 7
  • Internal Order Management
    • Several internal applications also capture manual orders
    • Already written in ColdFusion
    • Generated orders as CSV files
    • Rewrote file generation custom tag to produce XML
    • Could easily change to use JMS now!
  • Online Store Architecture II
    • Replace Perl back end
      • Use same engine as Breeze Live Online Sales
      • Send all orders as XML over JMS
    • ERP ColdFusion application does not change!
  • OLS Architecture II – Web Side
  • OLS Architecture II – ERP Side
  • New Order Management
    • Real time communication between OLS and ERP
      • Sales orders
      • Order status
      • Ship confirmation
    • Inside Oracle we publish data in real time
      • On triggers / workflow events, we publish recordsets as XML to Oracle AQ queues
      • Oracle AQ event gateway (Java) consumes and republishes to JMS using JMS event gateway
  • New Order Management (cont)
    • Large attachments processed in the background
      • Sends URL to async CFML gateway
      • Async task fetches document and stores in Oracle
    • Real time communication between ERP & CRM
      • Customer details & entitlements published to a single Oracle queue as XML rowsets
      • Oracle AQ event gateway consumes, reformats and publishes to two separate JMS topics
      • JMS event gateway consumes , parses and stores customer details & entitlements in CRM
  • The Big Picture
  • Future Plans
    • Over time, replace complex custom Java adapters with CFMX 7 JMS event gateways
    • Consider replacing scheduled tasks that scan directories for files with the built-in CFMX 7 DirectoryWatcher
    • Enhanced JMS event gateway – supports authentication, per-topic cached publishers, additional “initial context properties”
  • Conclusion
    • XML provides a human-readable, self-validating, structured format for complex data – and it's easy to process in CF!
      • XML beats CSV hands down (duh!)
    • JMS has reduced latency in data processing and improved the reliability of data transfers within the enterprise
    • A hub'n'spoke architecture makes it easier to add and replace systems without re-engineering everything else
  • Conclusion (continued)
    • Building JMS-based applications can be a complex, time-consuming process (and unreliable on .NET!)
    • ColdFusion MX 7's event gateways make it easy to build maintainable, robust asynchronous applications
      • JMS publish & subscribe
      • Oracle AQ receive
      • DirectoryWatcher
      • Asynchronous CFML
  • Questions & Answers?
      • Sean A Corfield
      • Director of Architecture
      • Macromedia, Inc.
      • [email_address]
      • [email_address]