The ArcGIS architecture for developers can be thought of as a series of clients and servers connected through a simple services model. ArcGIS clients connect to and use GIS services. The servers expose these services.
Developer support for ArcGIS is based on this client-server paradigm.
ArcGIS includes a rich suite of clients (services clients), designed for a variety of platforms—ranging from Web to mobile to full workstation desktops. ArcGIS also includes a set of servers that expose GIS services. These servers are designed to run as hosted services in the cloud, as enterprise servers, or as a local GIS runtime. Desktop GIS can also be used to access and work with GIS files on their local networks.
ArcGIS includes a number of clients that can be used and supports various development APIs depending on which client you use.
Most critically, ArcGIS Desktop is used to create and work with rich geographic information, which is subsequently shared and deployed across the ArcGIS system. ArcGIS Desktop is used to build maps, geographic data, and analytic models and perform GIS project work. It is also the primary workstation used to compile GIS data.
ArcGIS Desktop is used to create and publish the map packages and layer packages that fuel the rest of the ArcGIS system and GIS services on the Web.
ArcGIS Desktop can be customized and extended using ArcObjects APIs for .NET, Java, or C++. ArcObjects is a comprehensive set of software components used to write add-ins and extensions to Desktop.
ArcGIS Engine can be used independently of ArcGIS Desktop to write custom applications and embed ArcGIS into other desktop applications by use of APIs for .NET, Java, and C++.
Like ArcGIS Desktop, ArcGIS Engine is also based on the ArcObjects component library. For more information, visit the ArcGIS Engine resource center.
These Web applications connect to and leverage map services and other geographic information services from ArcGIS server nodes, ArcGIS online, and consumer mapping servers on the open Web.
Another option is to use ArcGIS Explorer Online, which can be used to work with Web maps, create and share map presentations, and tell stories with maps. Map-based storytelling is a critical mechanism used to communicate key messages.
ArcGIS services can also be used in SharePoint Web sites as Web parts for ArcGIS. This allows you to embed ArcGIS Web maps and use them within SharePoint applications. Your Web maps can access and use map services and other GIS services.
See Using ArcGIS for SharePoint for more details.
ArcGIS provides support for a number of mobile clients including Windows Mobile phones, Tablet PCs, and Apple iPhones. For more information, see the Mobile GIS Resource Center.
ArcGIS Server deploys ArcGIS capabilities in a server-based architecture. GIS maps, data, and geoprocessing models can be deployed as Web services and accessed by virtually any client for use by GIS professionals and other users. GIS services can be deployed and scaled using banks of computers, both on-site in your organization and in cloud servers on the Web.
Users create important GIS maps and information using ArcGIS Desktop and publish these as Web services using ArcGIS Server. In this way, ArcGIS Server provides broad access to information and the ability to scale your GIS to fit any configuration or situation.
Supported Web service APIs include SOAP, REST, and OGC protocols (such as WMS, WFS, and WCS). See ArcGIS services for more information.
The ArcGIS Resource Center includes a set of Web pages for ArcGIS developers.
This resource center is a guide for all developers to find relevant developer resources for working with any part of ArcGIS. You can also find help topics, blogs, forums, videos, and useful code samples to help you with your development work.
There are also strong developer communities that you can connect with to download and share useful application code and custom applications.