GEOG 583
Geospatial System Analysis and Design

Software Architectures

Software Architecture & Enterprise GIS

Software architecture is a subset of system architecture. Software architecture concerns itself with the internal and external manifestations of a program. System architecture concerns itself with the GIS software, the hardware, network resources, databases, and the people who build, maintain, and use these systems. An example of a good system architecture problem would be considering the costs and trade-offs with adopting an Enterprise GIS for a local civil engineering company that currently only has one GIS analyst position but will soon expand its team. For that example, assume an "Enterprise" GIS is one that allows for distributed editing of spatial data and connects across an organization to tie together all types of geospatial resources that it maintains.

Photo of people enjoying the architecture of a building at the Canton Trade Fair
Figure 5.02: The Canton Trade Fair
Credit: Canton Trade Fair, by Taro Taylor is licensed under CC by 2.0 

System architecture is a broad topic; in many ways, it is the overall subject of this course. Doing needs assessment, creating designs, and analyzing available solutions are all aspects of doing systems analysis. Database, programming language, and open source vs. proprietary system options will all dramatically affect which software architecture is appropriate as well. We focus first on the sub-topic of software architectures in this lesson.

Major Components of an Enterprise GIS

Most of you are quite familiar with GIS architecture, having worked with it on a daily basis for quite some time. Others of you may have had your first hands-on exposure to GIS through your Penn State courses. Either way, you have had substantial engagement with GIS architectures for a while. Generally speaking, a contemporary GIS can be thought of as having three main sets of components: 1. Data Store Components 2. Analysis Components 3. Presentation Components. The data store is at the foundation of the GIS (the INFO in ArcInfo was originally Esri's in-house database, for example). Choosing the database and how it is structured is a huge part of GIS design (something we'll focus on in a future lesson). Analysis components are all the things that happen to generate statistical results between reading the records from the database and having everything rendered to screen. Every piece of software has an implicit or explicit model realized in how it encodes and manipulates data. A GIS should have a rich spatial data model (and increasingly, a rich temporal model). Finally, the presentation portion is critically important as well. If you can't provide information to users via maps and other data graphics, all the database and analysis components will be useless. With the rise of web mapping, presentation technologies and frameworks have taken an interesting new turn.

Enterprise GIS kicks all of these components into high gear and imagines them as things that are connected across many parts of an organization, in the service of many different user groups, and taking advantage of advances in web computing, storage, and visualization to make all of it more flexible and accessible. We encountered this notion early on when we read from Roger Tomlinson's book, and now we're coming back to it with an eye on how we can break down the problem space of Enterprise GIS related to software architecture concerns. Contemporary Enterprise GISystems frequently use Service-Oriented Architecture (SOA) which offer up connections to maps, spatial datasets, and analytical tools that can then be blended together into custom applications. They may also function in a Software-as-a-Service (SaaS) architecture, where key functions are made available to end-users as software hosted and made scalable in the Cloud. Yet another flavor is the Platform-as-a-Service (Paas) in which virtual machines may be deployed to provide users with the ability to extend the work they might normally do on local machines into the Cloud where they can take advantage of scalable storage and computing. You could think of ArcGIS Online as an example of an SaaS while ArcGIS Enterprise on Amazon Web Services would be an example of a PaaS.

To Read

Please review the GIS&T Body of Knowledge article on Enterprise GIS, written by Seth Peery. This article goes in-depth on explaining the various design aspects of an Enterprise GIS and its intersections with software architecture elements.