Datasheet

Chapter 1
22
Advantages Disadvantages
Allows for (actually encourages)
component-based development, which
can increase reusability.
There is a much greater need for security and
infrastructure. For example, MTS/COM+ for the
whole process of looking after your COM modules,
or MSMQ if you are using any sort of messaging.
Two medium servers are often cheaper
than one large server. The separation of
business and data services makes two
servers an option.
N-Tier
N-tier is essentially like 3-tier and, theoretically, the best of all worlds. Frankly, I like this model a lot,
but I still have to caution you about taking the "one size fits all" approach. This model gets serious about
implementing what looks like a three-tier model logically, but instead breaks the components down to
their smallest reasonable logical units of work. If the data services layer is done properly, even the
database can be spread across multiple servers and moved around as needed. The only impact is on the
data services components that provide access to the moved data. The business services components are
oblivious to the move (less re-development here folks!), since they only need to know the name of the
data services component that supplies the data and what specific method to call.
Client
User
Services
(Typically a Web
Server)
Data Services
Database
Business
Services
User
Services
Spreads Over Any
Number of Server(s)
N-Tier System
(just one of many possible
implementations)
Similarly, you can change UI implementations fairly easily you only need to redevelop the UI. You still
call the same business logic components regardless of what UI (say, web vs. true client?) you are using.