Open source technology is a growing trend in GIS, but what is it? Open source software is software in which the source code used to create the program is freely available for the public to view, edit, and redistribute. Any type of software program can be open source, including operating systems (e.g., Linux), databases (e.g., PostgreSQL), applications (e.g., OpenOffice.org), games, and even programming languages (e.g., Python).
Open source software is identified by the type of license it is released under. These licenses include the Apache 2.0 license, the Microsoft Public License, and the GNU General Public License. While there are some variations, most open source licenses require that the source code be freely available and users are free to modify the source code and redistribute the software and derived works.
Non-open source software is called closed source or proprietary software.
The open source license encourages a shared community approach to the development, extension, and patching of open source software. Most open source projects have a dedicated group that moderates and directs the core software development and ensures that needed new features are being developed, bugs are being fixed, and the supporting documentation remains current. Sometimes an open source project will "fork," meaning a group of developers will lead the development of the software that is independent of the original project. Improvements in the "fork" project could either become incorporated into the core project or evolve into a completely new project.
A common misconception is that open source software is free, meaning without cost. While often true, that is not always the case. Open source only requires that a program's source code be freely available; the program itself may still be sold commercially. So what's the difference between a program's source code and the program itself?
Developers create a software program by writing its source code using a computer programming language, such as C++ or Java. The source code is a series of commands, processes, and interfaces that tell the computer program how to behave. A computer cannot look at source code and know how to run the program. The source code needs to be translated from the developer's programming language to a machine binary language (0s and 1s) that the computer can read.
The developer does this translation by running the source code through another program called a compiler. The compiler translates the source code into the binary language that the computer can read and execute. Compilers not only make it possible for computers to run the program but also make the programs more efficient by optimizing the file sizes and checking for errors. Since it is often difficult to reverse the translation, compiling helps protect the integrity of the source code.
Another common misconception about open source technology is that it is completely open and can freely read and write any data format. However, that is not the case. Formats, specifications, reference models, and procedures that help establish interoperability between programs and devices are called open specifications. PNG, RSS, HTML, and Esri's shapefile are all examples of openly published specifications.
The Open Geospatial Consortium, Inc. (OGC), is an international organization for developing open specifications for geospatial data, services, processes, and data sharing. Esri is a principal member of OGC and actively participates in the development and implementation of many of these standards.
Esri continues to advocate the need for open access to geographic data and functionality through support for widely adopted and practical standards and specifications. Esri follows an open system strategy for accessing and using geographic data and functionality. ArcGIS is designed and engineered with interoperability and extensibility in mind and conforms to the open standards and specifications that are necessary to implement enterprise systems. Users can incorporate GIS in any application on a variety of desktop, server, and mobile platforms and use geographic information stored in almost any format, accessed from a variety of databases, or delivered as a web service.
Deciding between open source and ArcGIS is not an either/or question. Esri encourages users to choose a hybrid model, a combination of open source and closed source technology, based on their needs.
Esri recommends the use of open source technology to enhance users' Esri experience. Esri supports the Red Hat Enterprise Linux and SUSE Linux operating systems. Geodatabases can be created on the open source RDBMS PostgreSQL. ArcGIS Server can use open source web servers, such as Apache Tomcat, to distribute GIS services.
Esri also integrates the best open source components in ArcGIS. Since ArcGIS 9, the software has integrated Python, the open source programming language, and at ArcGIS 10 introduced ArcPy, a Python site package, to simplify and automate Python scripting. The new Python window in ArcMap allows users to simplify and automate their geoprocessing workflows. The ArcGIS Desktop web help includes a list of all open source tools, languages, and libraries used in ArcGIS. In fact, there are over 80 open source components, including GDAL libraries.
Esri has released numerous APIs and Software Developer Kits (SDKs) to improve GIS interoperability. Many of these APIs and SDKs work with open source development environments, such as Eclipse or Sun's Java Studio Creator. Esri's most recent API, the File Geodatabase API, while not yet open source, opens up the file geodatabase for developers to create applications that access file geodatabases from a variety of outside environments without using ArcObjects.
Esri is increasing its participation in the open source community with several open source products.
ArcGIS Editor for OpenStreetMap is an open source add-on for ArcGIS Desktop that allows users to become active members of the growing OpenStreetMap (OSM) community. OpenStreetMap is an open and freely available database of geographic data. ArcGIS Editor for OpenStreetMap allows users to download data from the OSM server to a local geodatabase and use the familiar ArcGIS editing environment to create, modify, or delete the OSM data. The editor includes the OSM geodatabase schema and symbology template to simplify editing. Users can then upload their changes back to the OSM servers to share with the entire OSM community.
ArcGIS Editor for OpenStreetMap, its documentation, and its source code are available on CodePlex (esriurl.com/OSMEditor), Microsoft's open source repository, and released under the Microsoft Public License.
Esri Geoportal Server is a free open source product that helps organizations manage and publish metadata describing their geospatial resources so that others can discover and use those resources. Geoportal Server can act as the nexus for an international framework of spatial data resources for enhanced collaboration and data sharing among various government and private agencies. Geoportal Server does not require an ArcGIS license.
Geoportal Server supports standards-based clearinghouse and metadata discovery applications. It was released under the Apache 2.0 open source license, which allows developers to freely customize and redistribute the software. Esri uses SourceForge (esriurl.com/geoportalserver) to host and distribute the Geoportal Server software, documentation, and source code. SourceForge is a familiar platform for open source development, which makes it easy for open source developers to incorporate their changes and improvements to products.
Esri is excited to be part of the evolving open source community, including sponsoring and participating in open source geospatial conferences, such as FOSS4G and State of the Map. These events are opportunities to learn more about the needs of open source geospatial developers and users to enhance and improve Esri's open source offerings and interoperability and, most importantly, build a larger and stronger community of all geospatial developers and users.
For more information, visit esri.com/opensource.