🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.database.ado
Article #3848

Re: Multi-Tier Client/Server Database Processing Question... RELP!

#3848
From: Kim Madsen
Date: Thu, 06 Jun 2002 17:50
78 lines
4697 bytes
Hi,

It very much depends on the specific application.
Usually one wants the bulk of the processing to happen as close to the data
as possible for efficiency reasons.
For example is using stored procedures in a database usually able to
generate results faster than having the selection process running on a
seperate server. The reason is simply that less data usually have to be
moved from one server to another.
But if the further processing of the base data is taking a large amount of
CPU ressources, and the database also needs to serve other requests
simultaniously, it often will be faster to move the processing to another
CPU running the app. server.

If the processing is very CPU intensive and the amount of data transferred
from the database is relatively small, or will not be reduced significantly
by the data processing, your best bet is to put the processing on a seperate
application server.

These are the _very_ generalized performance issues. Many.. many things will
affect performance.

On another track you have some other benefits of using an application server
between your clients and the database:

- Database abstraction. Ie. your clients do not need to know what database
(if any) is behind the application server. You can relatively easily change
the database type/structure without affecting any clients. With kbmMW it
also allows you to make any type of data (for example filesystems,
mailsystems, legacy host systems etc.) behave as if they were a normal
dataset seen from the clients point of view.

- Client type abstraction. You can more easily add alternative client types
(thick, thin, web, WAP, SMS, whatever) without having to either rewrite or
copy your business logic to several client applications/presentation
servers. Having the business logic on the middle tier allows you to change
business rules without affecting clients or the back end database/datastore
if the business logic is well designed.

- Failover. This has actually not so much to do with n-tier in itself, but
is something most decent n-tier libraries support (kbmMW for example). It
will allow your clients to continue operation towards an alternative
application server if the primary one fails. It also allows for the
application server to select an alternative database if the primary one
fails. Thus uptime is increased.

- Loadbalancing. This is to follow the lead from failover. When a library
supports failover techniques, its a short way from also supporting
loadbalancing. Loadbalancing is to let the middleware library decide which
app.server and which database should handle the request/requests based on
either the anticipated load of the application servers, or the load is
simply spread evenly or randomly between all avail. app. servers.

I hope the answer was helpful. In any case check out
www.components4developers.com for more information.

best regards
Kim Madsen
kbm@components4developers.com
www.components4developers.com

"Steve Kothenbeutel" <skothenbeutel@consultant.com> skrev i en meddelelse
news:3cff349c_1@dnews...
> In a three-tier client/server environment, does the bulk of the database
> processing occur on the actual database server or the middleware server?
I
> am trying to figure out where the processing occurs and determine whether
> multiple middleware servers along with one database server will work well
in
> a high load situation.
>
> Thanks in advance!
>
> Steven Kothenbeutel
> skothenbeutel@consultant.com
>
>
>
Technical Details
Message-ID: <3cff9e63$1_2@dnews>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!supernews.com!news.infoave.net!skynet.be!skynet.be!newsfeed01.tsnz.net!newsfeeds.ihug.co.nz!ihug.co.nz!dnews
References: <3cff349c_1@dnews>

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fcd2b,b2129bdf7ec3fc9d
X-Google-Attributes: gidfcd2b,public
X-Google-Thread: 10698b,b2129bdf7ec3fc9d
X-Google-Attributes: gid10698b,public
X-Google-Thread: f6386,b2129bdf7ec3fc9d
X-Google-Attributes: gidf6386,public
X-Google-ArrivalTime: 2002-06-06 10:52:18 PST
From: "Kim Madsen" <kbm@components4developers.com>
Newsgroups: borland.public.cppbuilder.database.ado,borland.public.cppbuilder.database.multi-tier,borland.public.delphi.database.multi-tier
References: <3cff349c_1@dnews>
Subject: Re: Multi-Tier Client/Server Database Processing Question... RELP!
Date: Thu, 6 Jun 2002 19:50:29 +0200
Lines: 80
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.50.4522.1200
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
NNTP-Posting-Host: 194.192.106.106
Message-ID: <3cff9e63$1_2@dnews>
X-Trace: dnews 1023385187 194.192.106.106 (6 Jun 2002 10:39:47 -0700)
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!supernews.com!news.infoave.net!skynet.be!skynet.be!newsfeed01.tsnz.net!newsfeeds.ihug.co.nz!ihug.co.nz!dnews