Introduction to Geocortex Essentials
Geocortex® Essentials is a framework for designing, developing, and maintaining web mapping applications. Engineered from the ground up to work with Esri™ ArcGIS™ technology, Essentials extends the ArcGIS platform with the addition of a number of powerful features for building real-world GIS applications:
-
Workflows: Workflows provide a quick way to program complex, interactive, GIS and business procedures. Essentials Workflow Designer's drag-and-drop interface, library of activities, and built-in simulator accelerate development and free the programmer from handling low-level details like client-server communications.
-
Instant Search: Instant Search is a very fast, indexed search engine that enables users to search for attributes from multiple map services and feature services. Instant Search provides search suggestions to users as they type. The search results are sorted by relevance and search results are plotted on the map instantly.
-
Data Linking: Data linking provides the ability to retrieve non-spatial data from external data sources such as databases and spreadsheets, and link the external data to attributes of spatial data.
-
Reporting: Template-based reporting allows the user to generate reports based on templates configured by an administrator. Each template defines a standard layout for reporting on a layer's features, attributes, and data (both linked and computed).
-
Printing: Configured by the administrator, print templates enable the user to create printable maps, including large-format output, using standard layouts.
-
Charting: Charting enables users to view graphs of attribute data. Essentials supports bar charts, pie charts, and a variety of line charts. Charts update dynamically depending on the features that the user has selected.
Sites and Viewers
As an administrator of Geocortex Essentials, you will configure sites and viewers. A site defines the configuration of a map and the components that work with the map. Viewers are the web applications that enable users to view and interact with a site's map.
Essentials ships with a web-based tool for creating and configuring sites, Geocortex Essentials Manager. In addition, Essentials provides a viewer framework that enables you to create fully functioning map viewers with a few clicks, the Geocortex Viewer for HTML5. Viewers created using the HTML5 Viewer framework are implemented in HTML5, JavaScript™, and TypeScript. HTML5 viewers can run in a browser, or they can run as a native iOS, Android™, or Windows™ application in the Geocortex Mobile App Framework.
Geocortex Essentials and Esri ArcGIS
Geocortex Essentials is engineered to work with Esri ArcGIS technology. Essentials supports:
-
ArcGIS Server Services: Public or private ArcGIS Server map services, feature layers, images services, geocoding services, and geometry services.
-
Public ArcGIS Online Content: Public web maps, map services, and feature layers that are available at ArcGIS Online (
www.arcgis.com
). -
Private ArcGIS Online Content: Private web maps, map services, and feature layers that are hosted by ArcGIS Online.
-
ArcGIS Online World Geocoding Service: The geocoding service at:
http://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
-
Portal for ArcGIS Web Maps: Public and private web maps that are hosted in your Portal for ArcGIS portal.
Architecture
The term architecture refers to the structure or organization of a software system. Architecture focuses on the system's major components and how they interact with each other.
The diagram below shows the architecture of Geocortex Essentials.
Geocortex Essentials architecture
Like all web-based systems, Geocortex Essentials follows the client-server architectural model. The client-server model describes a run-time system in which servers provide resources or services to clients over a network:
-
A client sends a request to a server.
-
The server performs the processing required to generate the result.
-
The server sends the response to the client.
-
The client processes the response.
The architecture diagram shows the Client tier, the Server tier (which includes the Online cloud), and also a layer that is labelled Administration.
Client Tier
In the world of web mapping, clients are called viewers. Viewers are run by end users on a wide variety of devices and platforms. Viewers that are based on the Geocortex Viewer for HTML5 framework work on desktop computers, laptops, smart phones, and tablets running different operating systems. This is represented in the diagram by the variety of devices in the Client tier.
HTML5 viewers running on a variety of devices
In the diagram, the viewers are shown communicating with the Server-tier components via HTTP. If a server enforces Secure Socket Layer (SSL), viewers communicate with the server via HTTPS instead of HTTP. For more detailed information about how viewers communicate with Essentials and ArcGIS, see APIs Used in a Geocortex Essentials System.
Server Tier
The Server tier provides services and data for the Client tier. At the heart of the Server tier is Geocortex Essentials itself. Geocortex Essentials runs on Geocortex Core—installing Essentials also installs Geocortex Core.
Essentials provides access to your sites. A site is a technology-neutral configuration of the resources that are available in your viewers. These resources can include map services, workflows, report and print templates, and so on.
Essentials itself is not a map server. Rather, Essentials draws on the power of the ArcGIS platform. Sites provide the connection information that viewers require to connect to map services and other GIS-related services, like geocoding services. This is illustrated in the architecture diagram by the connections between Essentials and ArcGIS Online, Portal for ArcGIS, and ArcGIS Server.
In the diagram, Essentials is shown communicating with the ArcGIS components via HTTP. If a component enforces SSL, HTTPS would be used. For more information about how Essentials communicates with ArcGIS, see APIs Used in a Geocortex Essentials System.
An Essentials installation can have more than one Essentials server. For information, see Deployment.
You cannot change the name of the server after installing and running Geocortex Essentials.
Administration
The Administration layer provides tools for customizing Essentials sites and viewers. The administrative tools are not part of the run-time system described by the client-server model. The tools underlie the Server tier—they are the means by which administrators create the client and server components that comprise the run-time system.
The administrative tools are:
-
Geocortex Essentials Manager: Geocortex Essentials Manager is a web-based application that you use to create and configure Essentials sites and viewers.
Each site is defined in its own configuration file,
Site.xml
, that is created when you create the site. In the diagram, the Site Config box represents site configuration files. The Site Config box is colored green to associate it with the Essentials server.Similarly, each viewer has its own configuration file that is created when you add a viewer to a site. The Viewer Config box represents the viewer configuration files and is colored purple to associate it with the viewers.
-
Geocortex Essentials Report Designer: Geocortex Essentials Report Designer is a desktop application that you use to create report templates and print templates. The box in the diagram that represents report and print templates is labelled RPX because report and print templates are
.rpx
files. For a viewer to generate output based on a template, the template must be referenced in the configuration for the site that the viewer belongs to. -
Geocortex Essentials Workflow Designer: Geocortex Essentials Workflow Designer is a desktop application that you use to create and maintain Geocortex workflows. The box in the diagram that represents workflows is labelled XAML because workflows are
.xaml
files. For a viewer to run a workflow, the workflow must be referenced in the configuration for the site that the viewer belongs to. -
Geocortex Language Tool: The Geocortex Language Tool is a desktop application that enables you to internationalize Geocortex Essentials Manager. The box in the diagram that represents language files is labelled LPK because language files are
.lpk
(language pack) files.
The REST API
REST is an architectural style that is used in the design of web applications. Geocortex Essentials is built on REST. The ArcGIS platform—ArcGIS Server, Portal for ArcGIS, and ArcGIS Online—also uses REST.
APIs are interfaces that allow software programs to interact with each other. Essentials deploys a REST-friendly version of a site's configuration to the Geocortex Essentials REST API. Geocortex viewers obtain site configuration information from the Geocortex Essentials REST API.
Like most REST APIs, the Geocortex Essentials REST API is organized as a hierarchy of resources, with increasingly specific resources lower in the hierarchy. A REST endpoint is a URL to a REST resource. Every resource in the REST API is located at a unique URL.
The top-most endpoint in the Geocortex Essentials REST API lists your sites. Below the list of sites are the endpoints for individual sites; below a site's endpoint are the endpoints for the components in the site; and so on. Other resources in the REST API include map services, layers, charts, workflows, and so on. REST resources can also be properties, for example, a layer's default visibility, or operations, for example, an operation to export the map.
You can think of REST resources as the business objects in your sites and the operations that operate on them. When you save the configuration for a site, Essentials translates the configuration to a form that can be consumed by REST-based applications and then deploys the translated configuration to the REST API. Viewers obtain information about the site and its components by making web requests (HTTP requests) to specific URLs in the REST API.
View the REST API
The REST API Sites Directory is a browsable representation of the Geocortex Essentials REST API. Browsing the REST API Sites Directory to discover information about sites is analogous to browsing the ArcGIS Server Services Directory to discover information about ArcGIS Server services.
You can open the Geocortex Essentials REST API Sites Directory from almost any page in Geocortex Essentials Manager. To open the Sites Directory, click the Open the Site's REST Endpoint icon anywhere that it appears in Manager (usually at the top of the center panel).
Geocortex Essentials Sites Directory opened from Manager's Overview Map page
To browse down in the Sites Directory, click hyperlinks. Use the breadcrumbs to go up one or more levels. You can navigate from any site to any other site, provided the sites are configured in the same instance of Essentials.
If you configured a site but the site does not appear in the Sites Directory, then the site did not deploy. You can use this fact to test for successful deployment.
APIs Used in a Geocortex Essentials System
If you are extending Geocortex Essentials or the HTML5 Viewer with custom development, you need to know how components in an Essentials installation communicate with each other. Essentials, viewers, and ArcGIS communicate with each other using Application Programming Interfaces (APIs). An API is the interface that an application provides to allow other applications to access it.
The diagram below shows the most important APIs in an Essentials system.
APIs used by Geocortex Essentials and ArcGIS
Geocortex Essentials communicates with the ArcGIS platform using the Geocortex Essentials REST API:
-
ArcGIS Server: To obtain information about map services and layers from ArcGIS Server, the Essentials REST API makes requests to the ArcGIS Server REST API, which in turn obtains information from ArcGIS Server.
-
Portal for ArcGIS: To obtain information about services and web maps and other items from Portal for ArcGIS, the Essentials REST API makes requests to the Portal for ArcGIS REST API, which in turn obtains information from Portal for ArcGIS.
-
ArcGIS Online: To obtain information about services and web maps and other items from ArcGIS Online, the Essentials REST API makes requests to the Portal for ArcGIS REST API hosted at ArcGIS Online, which in turn obtains information from ArcGIS Online.
Geocortex Essentials and Geocortex Core communicate via their respective .NET APIs.
In the API diagram, the HTML5 Viewer has three APIs. The ArcGIS API for JavaScript and the Geocortex TypeScript API are used to obtain information from Essentials, ArcGIS Server, Portal for ArcGIS, and ArcGIS Online via their respective REST APIs. The Geocortex Framework API is used for creating modules and views, which structure HTML5 viewer applications.
Overview of Security
Many web applications that are created using Essentials contain sensitive information. Security is concerned with protecting your data, while still making the data available to specific users.
There are two sides to security:
-
Essentials Security: Essentials security controls who accesses your Essentials sites and their components. You can secure an entire site, or individual components in a site, including services, layers, workflows, and more.
You must add the components to your site before you can secure the components. See Security for instructions on configuring security for sites and their components.
-
External Security: Essentials and the viewers can access secured map services, including ArcGIS Server map services, OGC map services, and ArcGIS web maps.
Before you can add a secured service to a site, you must configure the service's connection information in Essentials so Essentials can connect to the service. For more information, see Service Connections.
Essentials can also access external ADO.NET data sources that are secured. See Data Links for information.
Essentials security is one part of the security solution for a site that references ArcGIS Server or OGC services. Essentials security and external security work together to secure your Essentials sites. If you are the owner of a service that contains sensitive information, we recommend that you secure the service.
The diagram below shows an Essentials installation with ArcGIS Server. The padlocks in the diagram indicate points at which access is secured.
Points to secure in an Essentials installation with ArcGIS
The diagram illustrates security for:
-
ArcGIS Online: Secure your organization's sensitive content in ArcGIS Online.
For information on using ArcGIS Online content in Essentials, see ArcGIS Online.
-
Geocortex Essentials: Secure your sites and individual components within your sites.
For information, see Security.
-
Portal for ArcGIS: Secure your Portal for ArcGIS web maps.
For information on using Portal for ArcGIS content in Essentials, see Portal for ArcGIS.
-
ArcGIS Server: Secure your sensitive ArcGIS Server services.
For instructions on configuring access to secured ArcGIS Server services for Essentials, see Add an ArcGIS Server Service Connection.
You can use different security methods for Essentials security and external security. For example, you could use Integrated Windows Authentication to secure your services, and SQL Server security providers for Essentials security. The fact that you use Integrated Windows Authentication to secure your services does not mean you have to use Integrated Windows Authentication for Essentials security.
You can use either secured ArcGIS Online content or secured Portal for ArcGIS content with an instance of Essentials, but not both.
ArcGIS Server Security
Web applications like Essentials access ArcGIS Server via a REST endpoint. To prevent malicious users from accessing the endpoint directly by typing the address into a browser's address bar, you must secure the REST endpoint.
ArcGIS Server has a token security service that you can use to secure the REST endpoint. If you do not enable the token security service, ArcGIS Server defers authentication to IIS. This is called Web Tier authentication. Depending on how you configure IIS, IIS uses one or more of the following authentication methods: Digest, Basic, or Integrated Windows Authentication.
Both Essentials and the end user's web browser need to have access to ArcGIS Server. If ArcGIS Server is secured, you must configure the connection information in Essentials so Essentials can access ArcGIS Server.
ArcGIS Server and Essentials Security Compared
Essentials Security
-
Essentials security secures the REST API.
-
End users must authenticate to access the REST API. To access a particular endpoint in the REST API, the user must have permission.
-
Essentials security supports the following authentication methods:
-
Integrated Windows Authentication: Authenticates using Windows users and groups.
-
Geocortex Identity Server: Uses dedicated security software that is installed with Essentials. Authenticates using whatever membership provider Geocortex Identity Server is configured to use.
-
ArcGIS: Authenticates using Portal for ArcGIS or ArcGIS Online.
-
ArcGIS Server Security
-
You must use a security method for Internet connections, because Essentials accesses ArcGIS Server via the ArcGIS Server REST endpoint.
-
Both Essentials and the end user's browser need to have access to ArcGIS Server.
-
ArcGIS Server security applies to a folder or a service—you cannot secure individual layers or features in ArcGIS Server. In Essentials, you can filter individual layers and features so they do not appear in the viewer. To complete the security provided by filtering, you must secure the ArcGIS Server REST endpoint.