Pros and cons of client/server vs web-based apps?

jeremyp said:

Yeah right! Try running a copy of Microsoft Word across a 16K connection in 32 bit colour at any reasonable resolution, or downloading virtually any modern web page with all the graphics that web designers seem to like across the same.

Its the latency not the throughput that matters. 16k is enough for a simple-gui application like a word processor - even a bloatwhore like MS Word. But if the ping is bad, then it all turns to custard. Evil custard. Custard that steals your wallet or takes your parking space.
 
DavoMan said:
Its the latency not the throughput that matters. 16k is enough for a simple-gui application like a word processor - even a bloatwhore like MS Word. But if the ping is bad, then it all turns to custard. Evil custard. Custard that steals your wallet or takes your parking space.


That's correct, essentially.

I realize that the tone of my previous posting is pretty bad. But I'd like to clarify some things with examples.

Thin and thick are bandwidth comparisons. Some web apps are intrinsically thick, and some non-web apps are intrinsically thin.

Thinness has its place, but not everywhere.

Consider two classic web apps: Mp3.com and Travelocity.

Mp3.com looks thin--until you click a high-quality stream link. Then, suddenly, your desktop is talking to a dicom server which will hog bandwidth. If you're on a modem, you're out of luck; if you're on T1, your SSH session to read your e-mail in Pine will time out. Mp3.com is a web application--and a thick-client application. Set the dicom server and actual contents aside, and what sits behind it? A searchable index which is updated fairly slowly, which you could pretty much handle from your desktop at 33k or less. The back end is thin, the web front is thick.

Now consider Travelocity. For all the nuisance it makes of painting jpgs and gifs of adverts all over the place, you very much can book a flight over a modem. Sitting behind Travelocity is Sabre, the travel application also used by Orbitz and others. You really don't want to try to run Sabre on your desktop, not even on switched 100-base. Between load-balancing, information pooling, and raw information-exchange, Sabre is a very thick application, a business logic layer which is a client to huge amounts of rapidly churning data. Individual components of Sabre probably use 100-base to talk to each other, but even if you had a data center of hundreds of machines on your desktop, you'd need multiple gigabyte trunks between that and the data to run Sabre. Travelocity is a thin front end--on the web-- to a thick back end, which probably doesn't contain internal web components.

Thick, thin, web, client-server-- each has its market niche. Calling one of these abstractions "good" and another "bad" begs the usual question of ethics: good for what? bad for what?

I recently encountered a similar discussion in which a student wanted to write an English paper arguing that classical music is intrinsically better than rap. I happen to like classical music a lot more. But guess what? The top of the business of classical music is currently bleeding money left and right, and is subsidized by helpful input from rap, country and western, and other forms of pop music. The question as formulated needs refinement, because to corporate executives, classical music is a barely tolerable evil.
 
An interesting sidebar about thick and thin connections: Oracle publishes JDBC connectors of both flavors. The thin connector is designed for low-bandwidth transient connections, and the thick connector is designed for pooled, continuously used connections.

One place where you see the difference is in the failover strategy for a mirrored database.

The thin connector doesn't maintain an open connection but can take a special JDBC URL listing all the servers in the failover group, in pretty much the same syntax as is used in a TNSNames file. It's the client's responsibility to try the listed servers in random order until one of them responds.

The thick connector keeps a connection open until it is explicitly closed, and lets the Oracle server side do load-balancing, registering the client as an observer of load-shifting and failover events, so the client passively shifts from server to server as instructed by Oracle instances.
 

Back
Top Bottom