« WindowsDevCenter.com: Create a Letterhead Using OpenOffice.org Writer | Main | Why so silent? »

Friday, December 17, 2004

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8345296c369e200d8345846c669e2

Listed below are links to weblogs that reference Idea for Thin middleware/Distributed Web applications:

» Mozilla and XForms from 42
This Mozilla Foundation Announces Beta Release of XForms 1.0 Recommendation is really good news. So far as I can see [Read More]

» It has a name: Ajax from 42
I have blogged about the new way of building web applications a number of times and now it seems there is a name for the architecture: Ajax. [Read More]

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

erik

the concept is not too far off...the REST architecture may be a little too restrictive to achieve your goal.

essentially, you can do what you're suggesting with frames and cgi scripts. your "static webpage(s)" would provide a set of tools -- feeding information to webservers... it's ok - but it still is leaving most of the processing to your web-client.

I've been fiddling with something similar, but think the basic model here is too restrictive. I've been trying to move my "productivity tools" to the internet (so they can completely live out in the ether somewhere).

Consider something simple like a blog. Say you want two or three websites to hold your blog-content (for redundancy)

you go to siteA and kick open a form to type in a new entry...hit submit, and the item is added to the message-store at siteA. now you need a way to move it from siteA to siteB and siteC...CGI's aren't really robust enough for that...and it's a hassle to pass the data back to the client and make a user re-submit.

so I've been thinking about changing the formula a little...say then your web-page includes a small applet. The applet joins the client machine into a network of machines (maybe an Instant-messenger chat-room?). then pass requests to all the machines...so you could type the blog-entry locally on the client and "post" it to all the machines listening ... your blog gets pushed to each of the storage areas at the same time.

similarly, queries to the chat-room could find information across each of the servers...again, leaving presentation as an issue for the client.

if your way-out where you can't join the net, basic web/cgi scripts from any of the servers

I guess what I'm getting at - is you still need a mechanism where you can reqest information from a number of servers.. HTML isn't too good at that.

DaveW

Applets can only talk to the original server. I would prefer the servers to handle such syncing, as you say keeps the client thin and also the client has less reliable bandwidth.

Daira's pop

I come from a background of classic 2 tier (vb and ms sql server) platform and I guess the trouble I am having is seeing how to deal with a stateless app and concurrency. Look at the problem of a customer of ours discovering a problem with an order and two people call. One person calls the sales desk and another person calls the sales manager to yell at him about the problem ever happening. The sales manager adjusts the customer's discount and the sales clerk overwrites the transaction with the order adjustment. In traditional applications you would start a transaction to lock the data or do a "freshness test" on the second transaction to see if the records that it holds is valid. How do you handle this situation in a stateless multi user app?

I have been looking a mod python and tinkering with sqlObject. I can see downloading domain type validators written in JavaScript in the outer frame of the rest app etc. What I don't get is how to handle the concurrency.

Help? Suggestions? Ideas where to look? Fish? 42? How do you explain tea to a food fabricating computer?

DaveW

Daira,

H'mm big questions. The toolsets I have used even since one tier applications (Dataflex) have not used pessimistic locking as you describe. There are 2 key elements to the answer. a) stateless b) optimistic vs pessimistic locking. The answer deserves more than a comment, I'll write a post on it at some point as I think the answers are interesting.

The comments to this entry are closed.