Design Question

Design Question

Post by John Smit » Tue, 20 Jul 1999 04:00:00



I am trying to implement a 3-tier Web Application Using an ASP font-end, ATL
Business Objects, SQL Server Backend. I was wondering what some of the
experts do to implement this strategy using (JAVA as well) . Do you make the
ATL objects just query the datebase and return a recordset (I've seen wrox
do this with VB components.) Or have a property for each datebase field and
a next function that scrolls the recordset. Or what??

This 3-tier design is pretty much standard now for reusable web applications
so it should be a commom issue, and it could be an interesting design
question with a lot of aspects to discuss. I have much more to add but I
would like to leave the question general at this time to see how other
people implement the 3 web layers.

thanks

Dennis Kertis

 
 
 

Design Question

Post by Maxwell Sayle » Wed, 21 Jul 1999 04:00:00



> I am trying to implement a 3-tier Web Application Using an ASP font-end, ATL
> Business Objects, SQL Server Backend. I was wondering what some of the
> experts do to implement this strategy using (JAVA as well) . Do you make the
> ATL objects just query the datebase and return a recordset (I've seen wrox
> do this with VB components.) Or have a property for each datebase field and
> a next function that scrolls the recordset. Or what??

We are using an HTML front end to a CGI that communicates through a socket to
our C++ server which uses ODBC to communicate with a SQL database.  We have the
ODBC layer return a recordset.  This recordset can be used like any collection,
in the sense that an iterator can be built that would allow you to do a
first/next interface.  Does that help?

Maxwell Sayles

 
 
 

Design Question

Post by Robert C. Marti » Wed, 21 Jul 1999 04:00:00



>I am trying to implement a 3-tier Web Application Using an ASP font-end,
ATL
>Business Objects, SQL Server Backend. I was wondering what some of the
>experts do to implement this strategy using (JAVA as well) . Do you make
the
>ATL objects just query the datebase and return a recordset (I've seen wrox
>do this with VB components.) Or have a property for each datebase field and
>a next function that scrolls the recordset. Or what??

Remember:  "Round Trips are the enemy".  You don't want queries for
individual fields going accross the wire if it can be helped.  You don't
want queries for individual records going accross the wire if you can send
the whole list.  It is often better to send too much data to the client, and
let the client filter it, to avoid round trip delays.

On the other hand, you don't want the client coupled to data that they don't
need.  Thus you need to create abstract interfaces that express the clients
needs, and have the middleware implement those interfaces with the data from
the backend.  Thus, when the database schema changes, the middleware must
adapt, but the client remains unaffected.

See "The Interface Segregation Principle" in the <<publications>> section of
http://www.objectmentor.com for more about choosing client based interfaces
for complex objects.

Robert C. Martin    | Design Consulting   | Training courses offered:

14619 N Somerset Cr | Tel: (800) 338-6716 |   C++
Green Oaks IL 60048 | Fax: (847) 918-1023 | http://www.oma.com

TINCC.

 
 
 

Design Question

Post by patr.. » Wed, 21 Jul 1999 04:00:00


: I am trying to implement a 3-tier Web Application Using an ASP
: font-end, ATL Business Objects, SQL Server Backend. I was wondering
: what some of the experts do to implement this strategy using (JAVA
: as well) . Do you make the ATL objects just query the datebase and
: return a recordset (I've seen wrox do this with VB components.) Or
: have a property for each datebase field and a next function that
: scrolls the recordset. Or what??

It seems to me you should start with an assumption of a very thin,
very standard first tier. Nothing more than HTML 3.2. The two back
tiers can run on one big box, two big boxes on a fast network,
etc. Keep the third tier design simple
(e.g. http://www.amazon.com/exec/obidos/ASIN/0471153370/qid=932508568/sr=1-...). Cache
as much as possible in the middle tier to be shared among all clients.

--