473,395 Members | 1,766 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

N-tier application - Design issue

Hi folks,
In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???

Would you please describe me this?

TIA,
Mehdi

Dec 11 '06 #1
13 1936
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.
3 tier is the classic client - server - database architecture where the
client's job is to look pretty but all the business logic is processed
at the server which hides the database away from the user, validates
stuff, applies business rules, etc.
>From there each additional tier is generally a way of breaking the
server into discreet sections. A data access tier for example manages
all communication with the database while a business rules tier would
implement business logic. This offers the advantage that if you wanted
to replace the data access tier with one that communicates with a
different database, you can work on the data access tier in isolation
knowing you won't damage your business rules.
On the client end, you can have a presentation abstraction tier which
defines how an application should look and feel regardless of whether
it's running as aspx or a windows forms app.
Add in a tier for distribution of server requests, so you can have two
or more servers acting as one seamless application, that's at least
five tiers.

mehdi_mousavi wrote:
Hi folks,
In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???

Would you please describe me this?

TIA,
Mehdi
Dec 11 '06 #2
Hi,

DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.
I think the politically correct term for a non-thin client is a "thick"
client ;-)

Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Dec 11 '06 #3
I think the politically correct term for a non-thin client is a "thick"
client ;-)
What about FAT32 then? THICK32?

- sorry, couldn't resist :-)

--
With regards
Anders Borum / SphereWorks
Microsoft Certified Professional (.NET MCP)
Dec 11 '06 #4
How about proportionally normal for this type of client client. No one
will have any idea what I'm talking about but at least my client won't
have hurt feelings :)

Laurent Bugnion wrote:
Hi,

DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.

I think the politically correct term for a non-thin client is a "thick"
client ;-)

Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Dec 11 '06 #5
Amazing :))))

Laurent Bugnion wrote:
Hi,

DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.

I think the politically correct term for a non-thin client is a "thick"
client ;-)

Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Dec 11 '06 #6
So there's actually 2 (client-server) or 3 (presentation, middle layer,
data layer) major tiers. And any other tier that's being added to this
model is actually partitioning each of those tiers. For example, in a
3-tier application, the data layer is actually divided into Business
Logic Objects, Data AccessLogic and etc. Right?

Thank you for your time,
Mehdi

P.S.: I really enjoyed the "fat client" phrase. ;)

DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.
3 tier is the classic client - server - database architecture where the
client's job is to look pretty but all the business logic is processed
at the server which hides the database away from the user, validates
stuff, applies business rules, etc.
From there each additional tier is generally a way of breaking the
server into discreet sections. A data access tier for example manages
all communication with the database while a business rules tier would
implement business logic. This offers the advantage that if you wanted
to replace the data access tier with one that communicates with a
different database, you can work on the data access tier in isolation
knowing you won't damage your business rules.
On the client end, you can have a presentation abstraction tier which
defines how an application should look and feel regardless of whether
it's running as aspx or a windows forms app.
Add in a tier for distribution of server requests, so you can have two
or more servers acting as one seamless application, that's at least
five tiers.

mehdi_mousavi wrote:
Hi folks,
In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???

Would you please describe me this?

TIA,
Mehdi
Dec 11 '06 #7
Hi,

mehdi_mousavi wrote:
Amazing :))))

Laurent Bugnion wrote:
>I think the politically correct term for a non-thin client is a "thick"
client ;-)

Laurent
There was a smiley in my post, but somehow it doesn't show in Thunderbird...

Greetings,
Laurent
--
Laurent Bugnion, GalaSoft
Software engineering: http://www.galasoft-LB.ch
PhotoAlbum: http://www.galasoft-LB.ch/pictures
Support children in Calcutta: http://www.calcutta-espoir.ch
Dec 11 '06 #8
Yeah it's all about partitioning the application in a way that
increases scalability, performance, maintainability and security.
Another point that's worth noting is that a well written 2 tier system
should adopt a lot of what you'd see in systems with more tiers.
For example in a 2 tier system consisting of a morbidly obese client
talking to a database server, some how the client is going to have to
get data into that database. Now if you take the seperation described
above, your client can have a library of data objects for talking to
the database with well defined interfaces, a library of business
objects, a library that defines the client's GUI rules, then a GUI.
If in the future your two tier needs to switch to oracle from SQL
Server, or you want to go to a three tier model, it's much simpler
because you've layered the code and only have one layer to change. Want
to upgrade the GUI? Just write a new one that utilises the client GUI
rules.
I hope that helps some,
mehdi_mousavi wrote:
So there's actually 2 (client-server) or 3 (presentation, middle layer,
data layer) major tiers. And any other tier that's being added to this
model is actually partitioning each of those tiers. For example, in a
3-tier application, the data layer is actually divided into Business
Logic Objects, Data AccessLogic and etc. Right?

Thank you for your time,
Mehdi

P.S.: I really enjoyed the "fat client" phrase. ;)

DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.
3 tier is the classic client - server - database architecture where the
client's job is to look pretty but all the business logic is processed
at the server which hides the database away from the user, validates
stuff, applies business rules, etc.
>From there each additional tier is generally a way of breaking the
server into discreet sections. A data access tier for example manages
all communication with the database while a business rules tier would
implement business logic. This offers the advantage that if you wanted
to replace the data access tier with one that communicates with a
different database, you can work on the data access tier in isolation
knowing you won't damage your business rules.
On the client end, you can have a presentation abstraction tier which
defines how an application should look and feel regardless of whether
it's running as aspx or a windows forms app.
Add in a tier for distribution of server requests, so you can have two
or more servers acting as one seamless application, that's at least
five tiers.

mehdi_mousavi wrote:
Hi folks,
In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???
>
Would you please describe me this?
>
TIA,
Mehdi
Dec 11 '06 #9
DeveloperX wrote:
2 tier is client server, either with the majority of the logic on a fat
client, or on the server accessed through a thin client.
3 tier is the classic client - server - database architecture where the
client's job is to look pretty but all the business logic is processed
at the server which hides the database away from the user, validates
stuff, applies business rules, etc.
Well, keep in mind that a logical tier does not have to be on a
separate physical tier. You can have a 3-tier application, all running
on one box. That's one physical tier, but three logical tiers
(assuming you COULD separate the logical tiers onto separate if the
need arose).

Dec 11 '06 #10
"mehdi_mousavi" <me***********@gmail.comwrote in message
news:11**********************@j44g2000cwa.googlegr oups.com...
In an N-tier application, what is the possible values of N???
I've found that what many people refer to as 3-tier actually has 4-tiers -
presentation, business, data access, and database.

///ark
Dec 11 '06 #11
mehdi_mousavi wrote:
In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???
Assuming that by "tier" you really mean tier as in stuff
that can run on different boxes and not "layers", then
with MS technology:

2 tier:

VB.NET app ---- SQLServer db

3 tier:

browser ---- ASP.NET web app ---- SQLServer db

4 tier:

browser ---- ASP.NET web app ---- COM+ services ---- SQLServer db

I find it hard to come up with realistic 5, 6 and 7 tiers.

Layers is much easier.

Arne

Dec 12 '06 #12
mehdi_mousavi wrote:
So there's actually 2 (client-server) or 3 (presentation, middle layer,
data layer) major tiers. And any other tier that's being added to this
model is actually partitioning each of those tiers. For example, in a
3-tier application, the data layer is actually divided into Business
Logic Objects, Data AccessLogic and etc. Right?
Even though MS is not always good at it then you should try
and distinguish between:

tier = something that can (but does not have to) run of different boxes

layer = a logical separation within the same tier

so in a typical 3 tier:

browser ---- ASP.NET web app ---- SQLServer

you can divide the middle tier (ASP.NET app) in 3 layers:
presentation, business logic and data access

(I prefer to consider it 4 layers: presentation, control,
business logic and data access, but that is not so common)

And if you use store procedures, then you can divide
your third tier in 2 layers: stored procedures and tables
even though that distinction is not so common.

Arne
Dec 12 '06 #13
On Mon, 11 Dec 2006 20:13:29 -0500, Arne Vajhøj <ar**@vajhoej.dk>
wrote:
>mehdi_mousavi wrote:
>In an N-tier application, what is the possible values of N??? I'm not
kidding, I just interviewed with a programmer today, and he started the
"2-tier application" conversation. From then on, I heard about "5-tier
application" and then "7-tier application".... I do know what is a
3-tier application, but what about 2, 5, and 7??? Does 2-tier means a
"Client-Server" application model? What about 5 and 7???

Assuming that by "tier" you really mean tier as in stuff
that can run on different boxes and not "layers", then
with MS technology:

2 tier:

VB.NET app ---- SQLServer db

3 tier:

browser ---- ASP.NET web app ---- SQLServer db

4 tier:

browser ---- ASP.NET web app ---- COM+ services ---- SQLServer db

I find it hard to come up with realistic 5, 6 and 7 tiers.

Layers is much easier.
When considering a system design my preference is to the continually
abstract layers until all the major elements have been determined.
Then it becomes a matter of determining where to segment the layers
into logical tiers.

A desktop app could be layered as
UI -BL -UDM -DBS
where the UDM (adaptor pattern) is a layer where any ugly data
manipulation occurs . If desired the same representation can be
segmented into 2, 3 or 4 tiers. In a 4-tier model the UI piece would
be some form of smart client.

regards
A.G.
Dec 12 '06 #14

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Tim Smith | last post by:
Hi, I have been considering how to personalize mini functional applications and I was wondering if there is an easy way to do the following for an client application design a) User runs...
6
by: Javaman59 | last post by:
This must be a common GUI design issue - whether to treat the GUI object which represents a thing as if it were the thing itself. I'll put it in the form which I've come across recently... I...
2
by: mrpubnight | last post by:
Hello everyone I'm hoping someone with more experience can suggest how I would go about designing the following: We have a standard web application and in its current form there are no distinct...
14
by: Mark O'Flynn | last post by:
I would like some advice regarding implementing inheritance using vb.net. I have an application written in vb6 that I am rewritting from the ground up in vb.net to take full advantage of .net,...
1
by: Rachel | last post by:
Hi, I have created a custom provider (extending on ProviderBase) to handle Standards and I wish to package up these classes (StandardService, StandardProvider, StandardProviderCollection,...
1
by: keliie | last post by:
I have a relatively simple (I assume) issue which I am at a complete loss to address. My issues is: I want to populate fields in my tables with summary data from the same table. Let me explain: ...
4
by: sagenaut | last post by:
The design issue is detailed as following: One application will write data to a flat file about every hour. Once the flat file is updated, it must be transmitted to three different remote...
8
by: obrianpatrick | last post by:
Hi, I am relatively new to object oriented programming and design. I am developing an application in VS 2005. I am having the following design problem: I have two interfaces X and Y. Y is...
11
Dheeraj Joshi
by: Dheeraj Joshi | last post by:
Greetings, I am working on a remote desktop management system. One of the feature in this product is remote configuration, i.e i must be able to create a new process, delete a process etc on...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.