atom feed27 messages in org.xml.lists.xml-devRE: [xml-dev] A question about REST a...
FromSent OnAttachments
K. Ari KrupnikovFeb 8, 2004 4:59 pm 
David MegginsonFeb 8, 2004 5:42 pm 
K. Ari KrupnikovFeb 8, 2004 8:58 pm 
Seairth JacobsFeb 9, 2004 5:45 am 
Seairth JacobsFeb 9, 2004 5:51 am 
David MegginsonFeb 9, 2004 6:21 am 
Bullard, Claude L (Len)Feb 9, 2004 7:07 am 
Bullard, Claude L (Len)Feb 9, 2004 7:43 am 
David MegginsonFeb 9, 2004 8:19 am 
Bullard, Claude L (Len)Feb 9, 2004 8:26 am 
K. Ari KrupnikovFeb 9, 2004 11:35 am 
K. Ari KrupnikovFeb 9, 2004 1:00 pm 
Bullard, Claude L (Len)Feb 9, 2004 1:45 pm 
K. Ari KrupnikovFeb 9, 2004 2:43 pm 
Bullard, Claude L (Len)Feb 9, 2004 2:51 pm 
Jim AnconaFeb 9, 2004 3:04 pm 
David MegginsonFeb 9, 2004 4:46 pm 
Seairth JacobsFeb 9, 2004 6:24 pm 
K. Ari KrupnikovFeb 10, 2004 9:54 pm 
K. Ari KrupnikovFeb 10, 2004 10:13 pm 
Pete KirkhamFeb 11, 2004 2:26 am 
Julian ReschkeFeb 11, 2004 2:54 am 
Klotz, LeighFeb 11, 2004 10:18 am 
Robin BerjonFeb 11, 2004 10:21 am 
Chiusano JosephFeb 26, 2004 6:18 am 
Michael ChampionFeb 26, 2004 7:29 am 
Bullard, Claude L (Len)Feb 26, 2004 7:51 am 
Subject:RE: [xml-dev] A question about REST and transaction isolation
From:Bullard, Claude L (Len) (clbu@ingr.com)
Date:Feb 9, 2004 7:07:06 am
List:org.xml.lists.xml-dev

What about an approach where the business logic middleware is distributed to the client hardware such that the shared server hardware doesn't bottleneck? It turns out that scaling up for concurrent clients without operating server farms is somewhat dicey for certain relational databases. For example, robust locking is not as good as advertised and once again, customers are buying based on advertisements, not experience.

Thick vs thin isn't the issue. One can have a thin client and still put the middleware on the client host. Would that help?

len

From: ar@cogsci.ed.ac.uk [mailto:ar@cogsci.ed.ac.uk]

You are talking about a very thick client here. It's not how much state there is this application (not much), it's how much logic there is (a lot). The server already knows how to do this logic. I don't want to duplicate the logic on the client. I want to use a browser, and I don't want a ton of JavaScript to handle the state client-side. A full-blown Java client is a future possibility, but again, I'd like to keep the business logic in it to a minimum. I definitively don't want three separate codebases for business logic, one on the server one in JavaScript (possibly in multiple versions for different browsers) and one in a Java client.

Client does presentation, server does business logic. Is that not in line with REST?

This approach would work for, say, a movie database, where the user might check out a full movie description to change the director's name, then check the entire description in again. It might not work so well for, say, a geographical database, where a modification to a shoreline may also require corrections to landuse data, roads and railroads, and so on, in no easily-predictable way.

It is entirely possibly that your project is one in the second category, but I wouldn't give up on the simpler approach until it were proven inadequate. Stupid-and-easy usually wins: moving 50K of XML each way once can be much more efficient than many 100 byte transactions.

It's not about reducing redundant traffic, it's about reducing redundant logic. One node should know how to do a process, be the final authority and bear the ultimate responsibility for that process.