Friday, November 18, 2005

Ideal Browser world and rich applications

Wednesday, November 02, 2005

Ideal Browser world and rich applications

Today I experienced a very current and relevant problem. I was looking for a software with which I could design virtual homes. Basically I needed an app that would draw a house plan, take my inputs for furnishing, structures etc and give me a 3D view of the whole thing. I needed it to be simple to use yet have complex (not complicated) functions. For e.g. I need a moon roof which should not slope down but be flat!

I searched the internet and found two options. One, there were tools that provided this functionality over the browser. That is, I subscribe a hosting fee and I can draw, paint and dar and drop through an applet on a browser. The second option, was to buy a software on a CD that would install as a desktop client. I used both and my pain points were all relevant to what problems we have in the industry today.

The issues in the browser based tool were these: The internet with great broadband is still not that fast esp. with latency and variable speed. So, if I drag and drop a refrigerator object in my bed room plan, it got dropped after a good 30 seconds. So, request and response with HTML and HTTP was good but it did not match my creative abilities.

The quality of the GUI - well, how much rich can you make an object that is brought (or dragged) all the way from the server thousands of miles away? So, the app designer does have to make a trade off. Can't the object just look 'like' a fridge-comeon, after all this is just the plan..not your house! So, the component called refrigerator is rectangular in shape and has a grid across it and user is expected to decode that as a refridgerator. Colors? Well, just keep a default color for now, okay.
Can I have many GUI components - may be different carpets, diff tiles, diff tap fittings, diff draperies......whew..no way. They are really fat components and do you want to hog bandwidth dragging them all the way? They will hog memory too.

So, my GUI components are BLAFed (Basic look and Feel) and are not really comprehensive in variety.

Third, what about storage, reuse and reliability? If my internet disconnects, does it journal it? Can I start from the same point that I left off? Can I reopen my plan, copy it, version it, have some security and authentication on it......................hey hey comeon, you are talking all things that you want in an enterprise software!
No, the browser based 'host' did not provide any of these.

But yes, I had advantages such as I could manage with lesser memory. I just needed a terminal with internet connection and a printer.

Okay, I shifted to the CD based client software. Boom, it installs so beautifully! But, wait how many files does it need to install? oops, so many picture files,whooooooo- so many .jar files.....oh man, why is it downloading another JDK version- I have a compatible one here, can't it detect? So, I finally run the executable and there si it. I gape at the client- wow! So beautiful. Such easy to use wizards, so many options that I can use. I just drag and drop a fully furnished bathroom and lo, I can see it on 3D. It looks beautiful.

But it suddenly vanishes-what happened? I go to task manager and open processes. It's hogged about 512MB RAM and there are about five or six processes running. I start again after killing the processes myself. I do this many times, struggling with rebuilding it every time it does the vanishing act. Then I look up internet and buy a even better, more reliable software. Now I try to open my old house plan with my new software (what a dumb thing to do, whoever said that apps work from one software to another) and it core dumps.

My requirements for this browser BLAF-Rich Client software developers is just the same set. I need a standard way of rich components on a browser, rendered via request and response, with all the functionality that the rich client provided plus the convenience of using it over any-PC have-internet technology. I will not do any installation, configuration on my PC. I need to move over and drag over components like a glider. The components have to look life like - if I say I want a teal sofa then it should look like the teal one. If I want veneer finish, well it better look like what I saw at the store. I need to get a REAL feel of it. I definitely want failure restoration (cold failover and hot failover), versioning, team development (I might be developing one room, my friend could be developing another room from his PC) and be able to save certain features as my 'styles' or profiles.

And last but not the least, I need to be able to see same kind of file type, component types, XML tags.....(standards :-)) so that I can open this, save this using any vendor's software as long as I pay the subscription fee.

SO, how does this look? Am I demanding? Not really, make it all simple!

Let me know what you think by sending me an email.

No comments: