dominoGuru.com
Your Development & Design Resource
The pitfalls of most "Composite Applications"
09/04/2007 10:56 PM by Chris Toohey
The biggest pitfall of most Composite Applications, or CAs, is the developers mindset that the integrated solutions need to communicate directly with the Lotus Notes client. In fact, pretty much any CA that relies on the interoperability between their intended solutions will eventually run into a brick wall in getting their mash-up to work as intended. The fact is, I don't need Lotus Notes to talk to Flash to get Flash to display data from a Lotus Notes application in my Lotus Notes application - well, not directly anyway. I'll give you a real-world example of a methodology that employs the same function that I'm getting at here. Consider if you will a technique that uses the form of a middleware approach to allow the user to interact with an application and receive near realtime information exchange. What I'm hinting to here is good ol' AJAX.
A layman's explanation of AJAX: AJAX acts as a middleware solution when a user, via the application UI, needs to communicate to a back-end data source and have that UI update accordingly.
Now, those of us that have been developing web applications more than a year will more than likely have needed such functionality well before AJAX was the new hotness, and have come across their own hacks to get this type of functionality. I might be speaking out of turn, but I'm willing to guess that the majority of those hacks included posting and returning data via a hidden iframe. See, an iframe would act as the middleware layer between the UI and the intended data source - allowing for some pretty slick functionality.
Using either the AJAX or the pre-AJAX-iframe approaches ultimately gave you the same basic outcome - your users got their data without their thinking that they've needed to jump from screen to screen in order to get said data. Now how can we use this knowledge when building a composite application?
Middleware. Let's say I have the following: I want to display information from several database in a consolidated Lotus Notes client UI. I would typically create a frameset-based application that links to said databases.
Now since it's not 1993, I want to include some eye-candy in the form of some Flash charts (circa 2003) that details data from our Lotus Notes databases. We want a Composite Dashboard! (Your executives will be so happy!)
Now, this is where most developers, in my opinion, lose their way. Instead of remembering all of their slick-tricks that they've mastered over the months/years, they revert back to those circa-1993 techniques to try to get Flash to communicate directly to a Lotus Notes database on-the-fly. Well, you don't need to do that - really, you don't.
The other day I posted an Lotus Notes Excel Export Database, one could losely call it a "Composite Application" mashing Lotus Notes with Office for data exporting and reporting. The meat of the functionality is this: don't worry about creating/re-creating the Excel spreadsheet, but rather take a template that you have already worked the kinks out of (headers, footers, fonts, cell formatting, charting, etc.), drop it onto the user's machine, and interact with it from there!
Now think about your Flash integration. What's stopping you from using a middleware solution here?
See? If we use the user's OS as our middleware, you won't be limited to the interoperability between Lotus Notes, Flash, or any other solution that you're looking to integrate into your CA. I have some pretty slick ideas for putting this technique to the test, and will - hopefully in the next few days - have a Composite Dashboard example application available for download.