Successful Development of Multi-Tiered GIS Applications
Software Architecture
An understanding of software architecture is needed to identify the layering strategy that can
be exploited. Typically software engineers try to separate the system into distinct areas of
functionality. Client/server applications usually implement what is referred to as the Three
Tier Architecture. This architecture divides the application into a presentation layer, a
business layer, and a data/data access layer, each of which can be replaced without causing or
requiring a lot of redesign to the other layers.
The presentation layer is usually installed on
the computer the user is accessing and it does
not contain any business logic - it is only
responsible for presenting data to the user.
This layer is referred to as the Graphical User
Interface (GUI) and it is what the users see
and interact with. The business layer is also
commonly installed on the computer the user
is accessing, but it is not required to be located
here. This logic may be installed on a separate
computer and accessed by the presentation
layer, but this is normally not the case with
client/server applications. Keeping the
business logic layer on the same computer as
the presentation layer increases performance
and reduces the amount of network traffic.
The business layer is responsible for
maintaining user based functionality - it does
not provide any type of presentation media. When a user invokes a tool or command from the
user interface, the business logic is called upon to perform the operation. The data layer for
enterprise based client/server applications is typically accessed from a server running a
relational database. This enables every client to access the same data without duplication.
Databases provide data to the business and presentation layers. Some business logic may be
maintained in the form of stored procedures, triggers, or constraints but it is up to the
application designers and developers to understand that it is stored in proprietary database
formats and can not be reused with other databases. There is no reason why all three layers of
a client/server based application can't be installed and maintained on the same computer, but
this is normally exercised only in isolated cases where data is replicated or used only by a
single user.

Web based internet applications follow the same layering strategy, only the different layers
are commonly distributed on different computers, possibly in remote locations. The client
computer is only equipped with a thin web browser used as the presentation media. The user
interacts with the browser to perform common actions and view data formatted into a web
page. The business logic and the logic that formats the data into a web page is located on a
separate computer called the Application Server or Web Server. As the numbers of users on a
web based application increases, it may become necessary to add more that one Application
Server to balance the load of large numbers of clients. In this case, the same software
components that provided the business logic can be installed on each of the Application
Servers. The Application Servers access the database server to retrieve, create, update, and
delete data. This layering architecture is what
is commonly referred to as a thin client or
browser based client because the client
computer has none of the number crunching,
algorithmic based logic and functionality - it
is all contained in the business logic software
components on the application or web
servers. This method of data distribution is
becoming more widely used because it
requires little, if any, additional software to
be installed on the client. It reduces
maintenance issues and allows users to
access data from different locations. The
draw back is that performance is usually less
than acceptable for anything more than a few
updates or inserts and internet connections
may not be available everywhere so IT
departments are still forced to deploy
applications that rely on the client/server
architecture.