Slide 1
Enterprise Integration with ColdFusion
Sean A Corfield
Director of Architecture
Macromedia, Inc.
no notes exist for this slide
Slide 2
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
no notes exist for this slide
Slide 3
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?)
no notes exist for this slide
Slide 4
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
no notes exist for this slide
Slide 5
macromedia.com BC
Before ColdFusion...
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
no notes exist for this slide
Slide 6
no notes exist for this slide
Slide 7
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â
no notes exist for this slide
Slide 8
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
no notes exist for this slide
Slide 9
macromedia.com â CFMX 6.0 U3
no notes exist for this slide
Slide 10
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!)
no notes exist for this slide
Slide 11
macromedia.com â CFMX 6.1
no notes exist for this slide
Slide 12
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
no notes exist for this slide
Slide 13
Online Store Architecture I
no notes exist for this slide
Slide 14
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
no notes exist for this slide
Slide 15
ERP â Oracle Applications
no notes exist for this slide
Slide 16
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
no notes exist for this slide
Slide 17
no notes exist for this slide
Slide 18
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
no notes exist for this slide
Slide 19
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
no notes exist for this slide
Slide 20
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!
no notes exist for this slide
Slide 21
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!
no notes exist for this slide
Slide 22
OLS Architecture II â Web Side
no notes exist for this slide
Slide 23
OLS Architecture II â ERP Side
no notes exist for this slide
Slide 24
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
no notes exist for this slide
Slide 25
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
no notes exist for this slide
Slide 26
no notes exist for this slide
Slide 27
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â
no notes exist for this slide
Slide 28
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
no notes exist for this slide
Slide 29
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
no notes exist for this slide
Slide 30
Questions & Answers?
Sean A Corfield
Director of Architecture
Macromedia, Inc.
scorfield@macromedia.com
sean@corfield.org
no notes exist for this slide