Up-Time All the Time: Designing GIS for High Availability
The GIS Environment
GIS implementations today are prototypical client/server environments, minimally
consisting of clients, servers, storage, and a network. On the front end are the clients, or
users, accessing applications and data. Clients’ systems most commonly run the
Windows NT operating system on an Intel platform. Clients can be “thin”, loosely
defined as using a graphical user interface (GUI) to access applications that execute on a
server; or “fat”, meaning that the spatial applications process on the client hardware. On
the back end are data servers, providing access to what are often very large data sets of
both spatial and tabular data through a standard programming or user interface. The
hardware platforms for these data servers are quite often larger servers, running UNIX or
Windows NT. These same hardware systems may also run the enterprise’s applications,
including the GIS. Increasingly though, the trend in GIS development is the introduction
of a middle tier, forming a three-tier client/server implementation. In such a
configuration, the GIS and other applications would be physically moved off the data
server and placed on the middle tier.
Two important benefits of this type of configuration are
- Each system can be scaled and tuned to most efficiently provide the type of service
required of it;
- Functional applications can be run in a different operating environment than the
database.
In either client/server model, data is stored centrally on a server system. Clients access
the data by making requests over the network to a program on the server. The server
program coordinates the clients’ access to the data, and satisfies clients’ requests by
accessing the data store and responding to the clients.
Risks to the Environment
Inherent to any application environment are various potential system failures that can
cause the applications and the data to not be accessible to their users. These failures can be caused by hardware crashes, software faults, or environmental problems. They can
occur on the client systems, on the data or application servers, on the storage systems, or
on the network. It is incumbent on those responsible for implementing a GIS – or any
mission-critical application – to consider all potential causes of failure, assess their
impact, and plan accordingly. In the context of a High Availability solution, our interest
lies with the continued accessibility of applications and data served by the second and
third tiers of a client/server implementation.
Conversely, a High Availability solution does not specifically address the loss of a client,
storage device, or network. A client failure, while annoying, is generally not critical, and
easily recoverable. Often a reboot solves the problem, or the user can move to another
system. Whatever the case, other users are totally unaffected by the situation.
A disk failure can cause loss of data, and will affect however many users access any files
stored on the failed volume. It is decidedly more critical than a client failure, but is
solved by RAID (Redundant Array of Independent Disks) technology, with mirroring and
striping. While a RAID solution is an integral and essential component of a complete
High Availability solution, it is not a topic unique to High Availability, and hence is not a
focus of this paper.
Similarly, network failure can be catastrophic. Clearly if a network becomes unavailable,
users cannot access the application or data servers. Proper planning to minimize its
occurrence and reduce its impact is necessary for any implementation that requires
continuous uptime. However, treatment of redundant networks is also a separate topic,
and is not treated by this paper.
|