by Chris Keyser
Summary: Composite applications offer a long-sought-after business nirvana whereby empowered technical business users can stitch together componentized business capabilities. In many ways, composite applications are the business users' equivalent of Web 2.0 and "mash-ups." While there has been a lot of hype around composites, many vendors have been slow to deliver real value in this area. Technologies are emerging, however, that will change this game, and composition will become an increasingly important aspect of constructing business logic. In this article, we'll discuss some of the fundamentals and advantages of using composite applications for today's business challenges.
For many enterprises, empowering business users to react quickly to rapidly changing business environments and gain a competitive edge is a high priority. Business users have long been beholden to IT to create processes and logic. Composite applications have the potential, however, to move the reuse discussion from the technical domain to the business domain, freeing enterprises from the confines of stove-piped host applications and developers, and enabling them to define behaviors optimized for their business through process flows and metadata.
The recent phenomenon with Web 2.0 in the consumer marketplace indicates that a fundamental shift is taking place and is a leading indicator of users' increasing expectations. More users have increased influence in driving their own experience and are bringing these same expectations to the workplace. Based on working with Web 2.0, users will increasingly expect to exert more control over their work experiences and to participate in them. They will expect business applications to adjust to the way they work, rather than accept a suboptimal experience. These Web 2.0 capabilities will mature as they drive into the enterprise. Ultimately, Web 2.0 is not really about the technology. It's about social networks and users' control of their experience; disposable applications created by end users represent the ultimate ability to respond to quickly changing landscapes. In the enterprise, the way to achieve this movement of power to the end user is through a composite solution that considers the business user as well as the developer.
A composition platform provides a mechanism for multiple technology vendors to participate in a solution without hardwired and fragile dependences. Greater value can be realized from a much broader spectrum of application vendors with much greater ease; a composition framework provides an interaction model that allows components to be effectively decoupled and abstracted from dependencies on other components. As systems increasingly move to composition, they will also be increasingly metadata-driven. The movement to metadata will open opportunities for new sets of capabilities, such as self-healing and version resiliency to applications. The composition model therefore brings many aspects of service orientation to the entire landscape.
Composition means different things to different people. Today, line-of-business (LOB) vendors' systems predominantly manage well-known steps that represent discrete points in time when moving a lead to a sale. This is often referred to as a structured process.
In recent years, vendors have started to use familiar applications—for example, Microsoft Office—to front a better user interface on top of this process for interaction at specific points within an existing process. These improvements enhance the productivity and usability of the process and extend the reach of application logic to a much broader set of users.
These capabilities alone should motivate businesses to adopt them. While these applications are a major improvement in extending reach, they are generally just surfacing existing functionality in a more usable way. Even with these applications, though, traditional LOB applications may be inhibited from progressing beyond this level of control. The inhibitors include:
New user interfaces in front of existing processes have not really given businesses any additional insight or control. Although the application may appear easier to use, the result doesn't improve an employee's ability to accomplish the task. As an example, this simplified process in Figure 1 describes turning a lead into an order for a custom-engineered product. Taking a lead to a sale actually involves much more work between elements than is represented in the initial structured process. This work is often collaborative in nature. Innovation frequently takes place outside structured processes in the collaboration interactions, where imagination predominates, where the creativity of information workers is truly tapped, and where the critical business differentiation occurs.
Figure 1. Example of a structured process for Customer Relationship Management (CRM) (Click on the picture for a larger image)
Although using a new interface, such as Microsoft Office, improves the view of the data, it does not in itself solve the collaboration problem. Integration of LOB systems into document-centric applications offers a particularly rich opportunity to compose information worker-oriented workflow extensions to the LOB process. With many portal solutions now incorporating workflow technologies (for example, the integration of Microsoft Office SharePoint and Microsoft Windows Workflow), it will increasingly become the collaborative workflow solution for LOB applications—blurring the line between managing documents and managing business processes. The example in Figure 2 illustrates how an account team would assemble a proposal in Microsoft Word to respond to an RFP. This is an example of using composition to extend the process across multiple-user experience channels (Microsoft Word, Microsoft Excel, and Microsoft Outlook), and have cooperating processes, one ad hoc and one structured, running on different systems to accomplish one logical business task.
Figure 2. Using Microsoft Office for composition (Click on the picture for a larger image)
A composite can also bridge processes running in independent LOB systems. For a case where some value-added processing needs to be injected, a composite service makes perfect sense, as is commonly the case today through integration middleware. This is illustrated by an information worker taking a confirmation response for a quote e-mailed to a customer from within Microsoft Outlook, and invoking a composite service to bridge CRM and ERP systems, creating the sales order in the CRM system and the internal order for processing in the ERP system.
Now that we have a good idea of what composition means, it's worth understanding other types of composition that can take place. I like to classify these compositions by the layer at which composition occurs.
Figure 3. Composition across independent LOB systems (Click on the picture for a larger image)
Composite application frameworks have the potential to change the way that applications are constructed, delivered, and experienced by end users. At some levels, however, this complicates the life of application developers, since now more thought needs to be given to which parts of the experience should be surfaced through which vehicles. It also puts pressure on vendors to think harder about developing true service-oriented applications, carefully considering service boundaries for capabilities in composite environments. As composition frameworks become easier to use, and operational and support models evolve to the point that composite applications are as easy to run, then the power of drawing on many vendors will be a strong incentive to accelerate change.
A successful framework needs to significantly reduce the friction across every level of composite boundaries. Collaborative scenarios are not a prerequisite for a composite application but are a natural place for a lighter-weight solution that is relatively simple yet high in value. The ability to compose elements of an application will move upstream to technical business users as these platforms increasingly move toward model, workflow, and rules-driven approaches, and bring to the surface more configurable attributes from business logic.
To realize this, we need to achieve interoperability at both the syntactic and semantic levels with line-of-business applications. Solutions to a number of difficult problems need to become accessible to everyday developers to achieve a full-blown composition infrastructure. Each of these areas warrants an article on its own, and several have already been explored in depth by others. These include:
Figure 4. Layers of the Composition Stack
Composability is a paradigm shift in computing from brittle, monolithic, developer-centric applications solving one particular problem, to agile, contextual, user-driven applications to support particular business processes. As with the shift to service orientation, this will require not only refactoring existing code, but also rethinking new code. It will also require new infrastructure to host the applications. The Microsoft 2007 Office System, especially with the inclusion of SharePoint server support and support of Workflow, is a first step toward these applications. In the future, the trend will continue so that users can effectively configure and control their own work environment, passing data seamlessly among applications, and perhaps across enterprise boundaries, to complete their tasks. Much still needs to be done to accomplish this vision, but spurred on by user expectations from advances in Web technology, it will be hard to turn back now.
I would like to give special thanks to Daz Wilkin and Jon Tobey for helping crystallize and refine this paper.
Chris Keyser is the lead architect for Microsoft's Global ISV team. Chris likes to write code and has a strong interest in Web services, and distributed and real-time systems. He spent the decade prior to joining Microsoft working for a series of start-up companies (B2B/e-commerce, voice biometrics, and physical layer network switching), using a variety of technologies in real-time and business-system development. For the first five years out of college, Chris raised havoc in the United States Navy as a nuclear engineering officer on board the USS Virginia. That was a total immersion experience in systems engineering, an education that is very useful to this day. He graduated from college with a double major in computer science and history in 1984.
This article was published in the Architecture Journal, a print and online publication produced by Microsoft. For more articles from this publication, please visit the Architecture Journal website.