Saturday, August 28, 2004

What are those Composite Applications?

"Composite applications" has become quite a buzzword. But what are those composite applications, exactly? The short answer is: applications built by composing existing applications and services. Now let me give you the long answer.

We are talking here about applications accessed by end users, not backend faceless programs. In most cases those are Web applications, which have been traditionally built with a 3-tiers architecture: the browser (running on the end user computer), the application (running on the application server), and the data store (usually a relational database). This decoupling brings a number of now well known benefits over 2-tier client-server architectures.

Traditional 3-tier Architecture

Composite applications live in a Service Oriented Architecture (SOA), which introduces one additional tier. Let's see what is the rational for this. In a 3-tier architecture, the application tier is not a monolithic piece of code. Instead, it is decomposed into multiple layers: two of the most important layers are the presentation layer and the business logic layer. Application architects have since long recognized the value of making a clear separation between those two layers, including making the code the application easier to maintain and evolve, and helping splitting the work to be performed in an efficient way among members of large teams.

Composite applications in a Service Oriented Architecture

While the presentation layer tends to be very application-specific, it is not uncommon in a given medium to large size company to have multiple applications implement the same business logic. Even though in a 3-tier architecture the application tier tends to separate the presentation layer and business logic layer, that business logic is not easily accessible from other applications. This means that when a new application is created, while the business logic has been already created from another application, the business logic will most certainly be rewritten from scratch for the new application. SOA wants to wrap the existing applications business logic layer in a service (think Web services), and new business logic implemented as services.

In this environment new applications only implement the presentation layer, and call services that implement the business logic. We now call this new type of presentation-focused applications "Composite Applications".

1 comment: