Link to home
Start Free TrialLog in
Avatar of svfafel
svfafel

asked on

2-tier -vs- 3-tier

Can anybody help me develop an argument against the statement:
-don't develop 3-tier applications...just develop 2-tier applications using VB & SQL on the backend.  Call all stored procedures that contain the business logic.-

Any help would be appreciated.
Avatar of dredge
dredge

why do you need an argument against that? 2-tier applications are perfectly valid solutions in many situations. especially when it just involves connecting a VB application to a SQL server.

the time it would make most sense to add the 3rd tier to this situation, is when you already have another system that does all of your business logic. (example: my company uses AS/400 MACPAC as their MRP - so we're building 3 tier - data (as/400), business logic (macpac), and presentation (many, many, many different platform applications).

it would help if we knew the scope of your project.
1. If the number of clients grows beyond the capacity of the back end server, a client-server (2-tier) solution will not scale. It will need major re-development.

A three-tier solution, though it can start with the middle and back-end tiers on the same computer, can be scaled by moving the middle tier to other machines.


2. A well-designed middle tier will serve many applications, saving development time. The only thing required to make this happen is documentation on middle tier objects.


ASKER CERTIFIED SOLUTION
Avatar of nigelrivett
nigelrivett

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Impressive dissertation. Does it address the request?

To nigelrivett.
Hm.
It depends on situation. I saw a lot of situations when customers asked to change business logick without changing database structure. Sure, sometimes they asked to add new table or fields, change its structure. Sometimes they wants to change database from SQL to Oracle or vise versa. But as a matter of fact, it is often more easy to change business level than to rewrite stored procedures and triggers. Sure, it is better not to strike an axe and use one scheme but think a little on architecture of system. Once more, it depends on situation. Thank you for reminder.

To svfafel.
n-tier applications takes more time to develop than 2-tier one. Sometimes you have some components for business level already developed (as gbaren wrote) but for big serious applications you often have to create new components.
But as a rule if you create n-tier application correctly it may be more flexible and have better performance than 2-tier applications.
As pointed out by many of the experts above, N-tier application development involves lot of effort, but introduces a lot of flexibility in the long run. A biggest advantage that I see in developing 3-tier applications is that of horizontal scalability. We are and ISP and have physically different machines in on each tier, our database being on the lowermost tier and client apps on the topmost tier. In our case we have got the flexibility to add as many machines as required on the middle tier and improve the system performance. Lot of design issues need to be considered in this case but the end result is astonishing.
I saw a lot of situations when customers asked to change business logick without
changing database structure

Yep, database structure is nothing to do with the business logic necessarily - sure it has to contain the info to support it. What you need to be able to do is change the database structure without affecting the business logic (or the client preferably).
i.e. if you get a chenge in data distribution or sizes and your SPs are no longer efficient enough you shold be able to change the database (e.g. introduce redundent data tables) without affecting other entities.
svfafel:

You have many open questions:

https://www.experts-exchange.com/jsp/qShow.jsp?qid=20151411
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20142486
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20152290
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20153618
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20155682
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20169125
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20175800
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20180978
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20190767
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20169126
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20146852
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20128521
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20134835
https://www.experts-exchange.com/jsp/qShow.jsp?qid=20136451

To assist you in your cleanup, I'm providing the following guidelines:

1.  Stay active in your questions and provide feedback whenever possible. Likewise, when feedback has not been provided by the experts, commenting again makes them receive an email notification, and they may provide you with further information. Experts have no other method of searching for questions in which they have commented, except manually.

2.  Award points by hitting the Accept Comment As Answer button located above and to the left of that expert's comment.

3.  When grading, be sure to read:
https://www.experts-exchange.com/jsp/cmtyQuestAnswer.jsp#3
to ensure that you understand the grading system here at EE. If you grade less than an A, you must explain why.

4.  Questions that were not helpful to you should be PAQ'd (stored in the database for their valuable content?even if not valuable to you) or deleted. To PAQ or delete a question, you must first post your intent in that question to make the experts aware. Then, if no experts object after three full days, you can post a zero-point question at community support to request deletion or PAQ. Please include the link(s) to the question(s).
CS:  https://www.experts-exchange.com/jsp/qList.jsp?ta=commspt
At that point, a moderator can refund your points and PAQ or delete the question for you. The delete button does not work.

5.  If you fail to respond to this cleanup request, I must report you to the Community Support Administrator for further action.

Our intent is to get the questions cleaned up, and not to embarrass or shame anyone. If you have any questions or need further assistance at all, feel free to ask me in this question or post a zero-point question at CS. We are very happy to help you in this task!


thanks!
amp
community support moderator

2/6
Avatar of svfafel

ASKER

All the input was excellent!!! thank you everyone for your input....it is most appreciated....