Article View: borland.public.cppbuilder.database.ado
Article #3848Re: Multi-Tier Client/Server Database Processing Question... RELP!
From: Kim Madsen
Date: Thu, 06 Jun 2002 17:50
Date: Thu, 06 Jun 2002 17:50
78 lines
4697 bytes
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!dnewsReferences:
<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