Open Versus Closed Software System Architectures
GIS and most other software systems that can support spatial thinking are industrial-strength, monolithic systems. As such, they are designed as stand-alone systems, perhaps with add-ons, but with tightly coupled data structures and control structures. It is usually not possible to break such systems apart into a number of independent components, because each piece is highly dependent on the other pieces.
GIS are generally seen as having reached a critical point in their development. They now offer so much functionality and, like many other support systems, are trying to address an ever-broadening set of issues and application domains. Although this functionality allows broad support for a huge number of application areas, it also results in ever more complex APIs, steep learning curves for developers and users alike, and problems with legacy systems. Yet most users of these monolithic systems access only a small percentage of the functions available to them.
Throughout the software industry there is a movement away from such monolithic engineering, where the resultant system is a single self-contained program, to a component model where functionality is broken down into small, independently deployable pieces that communicate through well-defined interfaces. This component-oriented model offers two advantages for the design, customization, and implementation of GIS. First, if interfaces are made public (i.e., published), it becomes easier for the value added reseller (VAR) to use the services that the components offer and to construct specific, focused applications that extend the basic functionality. Second, it offers the possibility, for vendors and resellers, to substitute one component for another as long as the new component adheres to the interface specification. Consequently it might be possible, for example, to swap the current map display tool for a new component that produces a highly stylized map or even a synthesized spoken description for the visually impaired. The new version of ArcGIS (9) takes this kind of component-oriented approach (http://www.esri.com), as does GeoVISTA Studio (http://www.geovistastudio.psu.edu).