Home > Integration
Integration Options for On Demand Applications

Any practical business application will need to integrate data and processes with other systems, both during conversion and roll out, and also in response to the natural changes in the business systems environment that occur over time. While web integration Mash Ups­ such as the well known Chicago Crime Map show the power of On Demand solutions in action (using web services to integrate disparate systems over the Internet) other approaches need to be used for older internal systems.

First do nothing

In many cases system integration is driven more by custom than a real business need. A guiding principle in all systems is to do no more than is needed (keep the system simple.) In order to focus business driven innovation where it will have the most impact, the best integration is no integration: either completely replace the existing system with functionality included in the new solution, or just sunset the existing system if its functions are not truly necessary.

Data lasts longer than process

Data structures outlast applications, operating systems, platforms, even computers themselves. We've seen data record layouts originally developed for punch card tabulators still used in modern systems. Use a relational database management system (RDBMS) to aggregate historical data from multiple systems rather than trying to interface the systems directly. Even if there are no immediate system integration needs, you still want to minimize the amount of data maintained online in an application, in order to improve performance. Only keep the amount of information needed to support your operations in the application, maintain history in a separate database that can accommodate information from multiple systems.

Data replication

Periodic data loads for key records are often sufficient to provide effective integration. As long as the origin of the data (the system of record) is clearly identified, and the data keys are preserved, replication is an effective way to sidestep the need for direct system integration - the only downside may be a delay in propagating changes across all systems. Both data aggregation and replication approaches can be implemented effectively using data integration products. Typically these tools can also transform data to meet different system requirements.

API programs

Application Programming Interfaces (APIs) allow custom programs / tools to be used to update On Demand systems from in-house servers. Located behind an organization's firewall these servers can interact directly with multiple legacy systems and minimize the number of points of integration with the On Demand system. While developing these programs is similar to any other system development, they are typically small custom programs that keep the new On Demand solution isolated from the legacy environment, and vice versa.

Web Services

It may be technically possible to add a web services layer to existing applications, either directly, or through a message bus / hub design. The advantage of this approach is the ability to re-use the exposed web service with any system. However this approach also introduces many risks:

  • Existing applications may not be well structured to support Web services
  • Additional security, billing, and availability capabilities may need to be developed
  • A sophisticated development team is needed to build Web services
  • Time and cost of the initial integration is greater
  • Additional infrastructure components may be required
Like many grand architectural designs, revising a large number of existing systems to become web services may be too great an effort for the result. It's usually quicker and easier to build a new structure than retrofit an old one. Carefully selected Web Services, developed to meet specific integration needs, can be good solutions, but only if they can be delivered within the timespan of the On Demand implementation.