How do you define "Composite Applications"?
While we're all puzzling over how to define SOA let's throw another term into the mix. The term Composite Applications is getting a lot of attention these days. The problem, like SOA, is that there seems to be many differerent opinions on what Composite Applications are. Gartner defines Composite Applications like this:
"Composite applications leverage the business application functionality that is exposed as Web services. The composite application is an abstraction layer on top of a service repository, which orchestrates a new business process and has its own user interface. A composite application may be a process template or a ‘service’.”
I'm not very fond of that definition. It goes far beyond defining the term and starts prescribing an architecture for implementation. I think one should just define the term and be done with it. I prefer to think of a composite application as an end-user application that both consists of and consumes resources from a broad set of disparate applications, platforms and services. How its designed and built is a separate matter.
So how does a Composite App relate to SOA? Do you think of SOA when you hear the term "Composite App"? It depends (a classic architect answer if ever there was one!). Let's drill into this a bit:
If SOA implies system-to-system integration and interop then there is no relationship to Composite Apps because there is no user. I believe a user is the consumer of a Composite App, not a system (since systems use interfaces, not apps). BTW - Mike raised an interesting point on this one - what about mashups?
Enough definition debates! Here are some Composite Application resources to help you better understand our capabilities in this area: