Architecture Challenge

OK.  Here's the challenge.  We have 3 physical tiers. The database tier, the middle tier, and the front end tier.  These aren't the best names for them but that's what they are.  The database and middle can talk to each other, the middle and front end can talk to each other, but the front end cannot physically touch the database.  Fine. 

So the challenge is how do you ensure a "Web 2.0" experience on the front end without touching the database?  Defining "Web 2.0" is a start.  For me, that's a responsive, intuitive interface.  No delay in ANYTHING.  Immediate results of your actions, you click save, I wanna see green or some sort of fireworks indicating success within nanoseconds of pressing the save button.

We're moving forward with a strategy of delivering some of the front end content from the middle tier.  The middle tier holds the rules, in this design anyway.  So if a user identified on the front end requests something or performs some action, the middle tier decides whether that user can do whatever they tried.  It's also a way of the middle tier deciding, based on the user in context, what that user gets to see on their front end. 

Other strategies have been suggested, like why not just have the middle tier execute sql against the database on behalf of the front end, return data and let the front end figure out business rules and what the user gets to see.  So If the front end needs data, it makes a call into the middle tier, and says "Get me stuff".  The middle tier says, "OK, lemme ask the database for it and i'll get back to ya in a quick moment".  Fair enough.  But then you get into the details of how that data is marshalled back and forth. DataSets? How do you fill datasets? This starts getting into the realm of writing your own sql, which is NOT what I'm in the business of doing.  There are tools that do that better than me, and I plan on utilizing those tools.

In the spirit of keeping an open mind, I'm gonna start from the basics, straight up sql from the middle tier to the database, and plain ol web service calls from the front end to the middle tier.  I'll post that guy in a few.

 
Author: , 0000-00-00