Integrate on the Front End with Lightweight Architecture


This post was also published in InfoWorld.

"Integration" is the third rail of enterprise IT. The mere mention of the word raises terrifying thoughts of huge budgets, endless meetings, and extremely complicated software.

But the days where each enterprise application is an island are coming to an end--even things as simple as an employee directory now need to integrate the HR systems of multiple divisions, accommodate cross-reporting and virtual teams, and integrate outsourced third parties. Like it or not, essentially every enterprise application today requires integration.

Naturally, enterprises have taken notice of the rise of "mash-up" applications on the Internet that integrate data from a variety of sources in new and useful ways. The trend was kicked off with sites like Housingmaps.com, which displays Craigslist housing listings on Google Maps, and has now reached quite a pinnacle with a conference called Mashup Camp where numerous people demonstrated useful mash-up applications.

Front-end integration has become the enterprise equivalent to the mash-up movement. It works by integrating Web services and databases at the web tier, using lightweight technologies like LAMP. With lightweight architecture, it is very simple to integrate data from a variety of internal and external sources and present the data with a rich AJAX user interface. One example of front-end integration is a call center application that integrates data from CRM and ERP systems as well as FedEx, so that customers are not waiting as call center reps are endlessly typing lookups into three different systems.

Remember, however, that back-end integration is still necessary to create non-user facing services that require multi-phase commits or long-lived processes. Multi-phase commits involve coordinating across multiple data stores to ensure that data is updated on all of them or none of them, most commonly for financial types of transactions where money is being moved. Long-lived processes involve coordinating multiple steps across many systems, such as handling exceptions in supply chain management where a shipment needs to be diverted automatically to a new plant. These types of projects are very expensive and cumbersome, and the most popular technology for back-end integration is of course J2EE servers and their Integration Server offshoots from vendors like IBM and BEA.

But as evidenced by the growing use of mash-ups on the Internet, very useful integration projects can be delivered quickly and economically on the front-end, using lightweight architecture.