Friday, April 10, 2009

Is RIA the new Client Server?

I was just working on an old JDK 1.1 based web application that was running on Oracles implementation of Apache’s old JServ. Yes, I get all the cool new bleeding edge assignments. At the same time I was doing a bit of analysis on an upcoming task that looks to be a bit more modern with dashboard functionality, drilldown reporting, pretty pictures and possibly some streaming audio.

What struck me about the old code is how absolutely stripped down the client side of the servlet based web application was. It was completely static content with the most basic request/response paradigm possible. Almost no session data to track, other than a few settings in a cookie. No back button history issues, no controls, no local eventing, no java script, no nothing. Just some good ol’ html input tags inside an html form.

Remember I’ve got eye number 2 mulling over some possible directions we can take for this 12+ year old client server application written with Oracle Forms.

This is what popped into my head. Silverlight, Adobe Air/Flash and JavaFX programming paradigms seem to have more in common with Oracle Forms than the old servlet based web application that I was working on.

So here I am trying to figure out how to “un-clientserver” an application and bring it to the “modern ages” but the client code and environment is going to end up looking very similar to what’s already there. It will have more in common with the Oracle Forms app than the servlet app. SAY IT ISN’T SO!!

OK, here’s the disclaimer. I know the benefits of getting off of a thick client architecture. It just seems funny to me that it’s possible that we’ve replaced something that did what it was supposed to (the old html app) with something that works like the model it was supposed to replace (the client server app).

Here’s some general hot points:

html centric: static data, all you need is the browser, sandboxed, low/burst bandwidth utilization, very deployable, centralized administration, business code is in a single location(ok, maybe that is too idealistic), upgrades happen at the web server not every client etc..

client server centric: have to install and manage the client platform software and drivers and keep them version synched on every machine, heavy traffic, need system level access, business rules are embedded in every client, proprietary client platforms are very difficult to maintain and cause dependency to the technologies that single vendor supports ...

RIA centric: Let’s see, you have to have client side platform software installed and maintained, tons of business logic on the client side for control manipulation, security management and UI building based on user information, we spend tons of time trying to figure out how to get around the browser sandbox for content manipulation and so on. PLUS we are starting to stream BOAT LOADS of data, goodbye thin client….

So, have we really advanced? Or, are we just running around in circles thinking we are covering new ground because the hole is getting deeper on each pass? There are some seriously difficult code maintenance issues that come with a complex client server application. As the client side of RIA applications get more and more sophisticated and event and data management code becomes more complex, are we doomed to paint ourselves in the same corner?

What say you?

No comments:

Post a Comment