Smart client and Integration aspects.

The world is going toward integration between systems (not applications). I personally spend time on IT aspects of companies merging and acquisitions. Usually merging and acquisitions process emphasis Integration problems. Integrating systems to operate as single system or to enable one system to gain other system data and logic is not simple task. This integration task becomes harder if those systems developed with different technologies and nightmare if each system develops for specific operation system. Acquisitions process emphasis Integration problems but Integration problems may raise on other scenarios, such as your company wants to share data and knowledge with other companies around the glob.

XML, the cockroach protocol HTML and web development seems to be the optimal solution for developing Integration aware applications. The server part of web application is black box of application data and logic and it accessible for other application from all around the glob by web services. HTML is the visualization layer of web application and it can be easily integrated into other application visual layer. HTML let us easily combine different formats of data from different data sources and present those data formats on single page for the end user.

Smart client are interesting and powerful applications that combine windows application easy development and web zero deployment to create window application. Smart client application download to the user client, take advantage of windows GUI abilities and use remote web service to get data. While smart client are very sexy and pushed by Microsoft there are some aspects with smart clients that don’t feet the System integration promise land. First smart clients download application logic to the client thus make it hard to consume application logic from other application. Second, visualization layer of application are integral part of application and can't be used from other applications. Yes I know that you can create loader application, assemblies with forms and to use XML to load dynamically Assemblies or visual aspects. But no matter how you look at smart clients they miss integration simplicity as you can find using WEB applications.

You can argue why we should need to integrated visual aspect, after all we can always use SOAP to integrate between applications. Well, this argument may be valid theoretical but it failed in practical world. Just on Friday one of my clients calls me to suggest a solution for integration issue. His company buys one of his competitors mainly for data they own. They use data, link analysis and visualization algorithms to display data in such a way that the user can come into conclusion fast and easily. He wants to use this ability in his IT systems but his company system is running on browsers while the competitor application is stand alone C++ application. Now to integrate such application you need to embed visual aspect of the application due to visualization algorithms used to show link analysis results.

I'm not saying that smart clients are bad or evil. I just argue that when you choose architecture for your application take in account organization overall demands and vision. If your organization sees integration, for one reason or another, as one of the organization target I don’t think that smart clients are the right choice.

2 Comments

  • I still don't see why smart clients are not a solution for integration. Your argument against it is that you need application logic down at the client-level which I wouldn't suggest for any application, whether it be smart client or web based. Business logic should not reside at the UI level. The example you give about your client does not contain enough information as to whether you couldn't move the visual algorithm to the server and wrap it in a web service, or make it an object of its own that can be called using remoting.



    My only issue with smart clients is that they are a Windows only solution.



    Mark

  • Mark:



    In smart client deployment, business logic assemblies must be deployed on the client to enable work in a disconnected mode.

Comments have been disabled for this content.