Monday, October 16, 2006

Component Based Architecture & Service Oriented Architecture

The future of web is in sharing. It is time, web sites providing online services should gear themselves for this. It is better than to slog inorder to avoid competition. In coming years (or months.. who knows), online features will be rated on their plugability/mashability, along with useability and speed.
Component Based Architecture allows you to do exactly that. The software architecture should be such that each feature/product is defined as a "component". These components can then be used for different services. "SOA" is thus born... taking you to the world where web applications can be shared.
A web product is so designed and developed, that it can be used anywhere seemlessly. Few points that needs to be kept in mind are,
  1. A component should be independent
  2. It should be pluggable
  3. It should be reusable
  4. It should be mashable
  5. It should be asynchronous
  6. It should be secure
I stress upon the term "asynchronous" as i personally prefer it :-)
The best way to expose your services is through SOAP and REST. When designing your application software, do it keeping the above two in mind.
The services offered through these components should be such that these are available at the client, as well as at the server level. To put it simply, it should allow a presentation layer (for eg, javascript) integration, as well as middle layer integration.
When developing services for the presentation layer, always write APIs. If you need, you may go a step ahead and write a client for it as well. While doing that, get a peek into "rich internet applications" (RIA) as well.
To start, you may use javascript/iframes for a presentation layer integration.
I see this as the future. Your web application components will not be confined to your websites or your products. It will go beyond that and help make better products and services. Everything tomorrow will be personalized and customizable. Design your applications in such a way that you are geared up for this demand. You do it today, and you are already ahead of your competetion. A user should be able to decide what he/she wish to use and from where... that means, "the web would become programmable". Enterprise soultions with OpenSource is the mantra.

Few books worth a read,

Sunday, October 01, 2006

My allepy visit... houseboat in the backwaters of kerala.