| N-tier Client/Server
Model As
explained earlier, in the two-tier Client/Server
model, the business logic goes either with the
client, or with the server or split between both.
Even though the two-tier Client/Server model has
advantages over the conventional model, still it
has its own limitations. The first and most
limitation would be the maintainence and
distribution.
For example,
say, the application is using Sybase SQL Server
and PowerBuilder. Say, all the business logic is
put on the SQL server in the form of Stored
Procedures and triggers. What happens if the
management decides to migrate from Sybase to
another database. All the data has to be
converted into the new database and also all the
business related code need to be written in the
new database, even though there is no change in
the actual business code. Lets see what
happens when we put the business code in the
client application. If there is a simple change
in the business logic, you need to distribute the
new version of the client application to all the
users which is more difficult and time consuming
job.
In the three or
n-tier Client/Server model, we clearly divide
into three parts, one application contains the
presentation, navigation & GUI logic only.
The other would be only the application logic
(business logic). The data server just stores the
data, contains no business code.
In this model,
the business logic is encapsulated and put on a
different server. You dont have to do any
changes in the business related code, when you
migrate your client or server to other brands.
Any changes that you do to the business logic can
be implemented very fast compared to the client
application distribution to hundreds of users.
The end-user dont have the need of high
powered client machine, since all the data
business logic and calculations are being done in
the application server. The big benifit is the
scalability. When your business expands and add
hundreds of users, you can add more and more
servers and route the requests from one
application server depending on the load on other
servers; This would be transparent to the
end-user, and also, the client machine always
contacts only one server; That means, there is no
need to do any change in the client application.
|