I take the time to start posting some thoughts on Composite Applications and, more specifically, on Mashups. It is some time that I have this in mind but I have always been struggling with the lack of a coherent approach in writing this down. Not that today I found this coherence or I am ready to write properly what I think… but at least I found an excuse in an article that grabbed my attention.
The article which gave me the trigger is, incidentally, AJAX Composite Apps - The Last Mile Between Your Users and Your SOA.
The article starts with an interesting sentence:
In the IT industry we also have our “last mile”: putting the right application in the hands of the end user. Composite applications address this “last mile”, combining a rich user interface with SOA-driven application integration technology.
Yes, I think that the analogy is interesting. It continues saying:
Composite applications are nothing new. Analysts have been talking about composite applications since the birth of the Internet and in more urgent tones during the Enterprise Application Integration (EAI) generation of integration technology
and, towards the end, goes deeper:
Portals were arguably the first generation of composite applications. Today composite applications can offer a much richer application development platform through service-based integration (instead of the kind of integration in the application server that runs the portal) and the highly interactive user environment offered by AJAX-enabled rich Internet applications. With this trend, some analysts have predicted that composite applications signal the beginning of the end for portal-based applications. In reality, the primary functions of portals and composite applications complement each other well. A portal can “wrap” and pass through users seamlessly to a composite application, containing it wholly. Conversely, a composite application can wrap a portal (or portlet more likely), as part of the application, perhaps even invoking it with parameters that tie it into the rest of the composite application.
As I wrote in my post titled Two faces of the same coin, the integration space is huge. In order to do a job, in order to do a task in general (I would say), everybody needs to integrate information and tools coming from different directions.
- Some of them are mandated.
For instance, in a working context, some of these information and tools are mandated by the company’s business process; it is the view that the company has on the activity you have to do.
Outside of a working context, mandated information and tools are the ones that derive from experience, from common wisdom or from convention.
Some others are specific to each individual.
In a working context, for instance, two enginers may do things differently because of the personal taste and experience, the curiosity, the culture.
And this is true also outside of the working context.
I would say that this “part” is what distinguishes an artist from an other….. and this should be well known to software engineers, right?
So, these two sides are really important. They complement each other. Today is hardly possible (at least in the Western world) to think to a job where an individual is not asked to bring her/his own “approach, experience, information, tool“… This is why, I think, our governements are very attentive to the school system.
So, how this matters in the context of the Portal and Composite Applications?
I think that a Portal is the way in which the “mandated information and tools” are made available to an individual. A Portal actually aggregates the info and tools that the “owner of the business process” delivers to someone in a given role. These info and tools are part of the arsenal of the company, either directly (because they are physically owned by the company) or indirectly (because the company believes that this material found elsewhere is useful for you… and perhaps pays a fee for making it available to you).
A Mashup is the equivalent, in my opinion, of the “personal knowledge” that an individual brings to the table in order to do her/his job in a personal way. I may be wrong but, if you allow me for one second to escape the technical limitation imposed by today’s browsers sandboxes, a Mashup is something that I bring into my workspace in order to do things better. There is a lot of accent on the user, on the way in which each individual plays herself/himself in the context of a given activity; it is her/his “engagement”, her/hos “flavor in doing the job”.
At this point, a Composite Application describes the way in which these two sides are combined.
I start thinking that my previous post (and the analogy with the hemisperes) is getting more clear now. The Portal is the way in which the “company side” (I would also say, the “server side”, at least in the mahjority of situations) of the picture is delivered to you (I call it the South Hemisphere). And the Mashups is the way in which the “personal side” (I would also say the “client side”…) of the picture is used by you (I call it the North Hemisphere).
In both situations, of course (and the author of the article is right) SOA is important.
And it is in this context that an architecture like the one of IBM’s Managed Client (see here) will make the most of sense. Even if it does not yet brings inside the picture the concept of Mashups, i.e. the concept of components that the final user can aggregate in an autonomous way to complement what the “server” brings to her/him.
I am not bashing AJAX here, of course. But AJAX is not always the right answer.