Understand performance differences in Geocortex Workflow vs Essentials

Understanding performance differences between Geocortex Workflow and the workflow capability in Geocortex Essentials [Geocortex Tech Tip]

Ken Lyon
Ken Lyon
Software Developer
May 1, 2020

Understanding performance differences between Geocortex Workflow and the workflow capability in Geocortex Essentials [Geocortex Tech Tip]

This video continues our comparison series of how the newest generation of Geocortex products are different (and better!) from their previous versions in Geocortex Essentials. In this video, we demonstrate the performance differences between Geocortex Workflow and the workflow capability in Geocortex Essentials.

On that note, in this week’s Geocortex Tech Tip, we will discuss some of the challenges faced with regard to performance in creating and running workflows in Geocortex Essentials, and how they have been addressed in Geocortex Workflow. With most workflows now running entirely on the client, there are no longer costly round-trips to the server and no need to use performance-enhancing tricks like reducing the scope of variables.

Watch on Youtube.

Video Transcript

“Hi, I’m Ken. I’m on the Products team here at Geocortex. Today, we are going to look at some of the performance improvements that have been made in the Geocortex Workflow product compared to how it used to be done in Essentials. Let’s get started!

Ok, so I am going to give you a quick look at Workflow here. I’ve got two different versions of it. I’ve got the Workflow in Essentials on your left, Geocortex Workflow on your right, and they are both doing the same thing really, just different technologies.

We’re going to be getting some sample data from a map service, and we are going to find the largest census track. So, we’re looking at a number of features, we are going to iterate through them and compare them, find the one with the largest area, and show an alert.

So, fairly straightforward example, just to show you something that can be impacted by the way these work in terms of performance.

Before I show you them, I just want to talk briefly about the difference between how they actually work.

With workflows in Geocortex Essentials, it’s all run on the server, and the browser is just really sending you a request to the server, getting back a response, and sending an extra request back and forth and back and forth for pretty much every step in the workflow. There are a few minor exceptions to this. When you are selecting things from the map that’s also done in the client, but everything else is happening in the server.

So, there’s a lot of that chatty traffic back and forward, sometimes this can get quite big because the state of the workflow has to be persisted, it has to remember what’s all been done. So, if you have things like variables or feature sets then that whole thing can be ended up going back and forward every time.

There are ways to mitigate this, but it’s not really obvious to the average workflow authors as they start to learn this stuff to begin with. For example, you can scope variables to only be used by certain sequences, you can also use client parallel to allow you to batch client task, reducing the overall number of round trips. But, these are kind of advanced tricks, we really wanted to make it easier to get performance right from the start.

So, that’s where Geocortex Workflow comes in. One of the main differences with it is that everything is run in the client, so you don’t really need to worry about the scope of your variables or things like that because we’re not sending that stuff to the server.

There are still a few things that can only be done in the server like database stuff and file access, things like that. Those kinds of things, you can create a server workflow and you can run it from your regular client workflow, so it is still possible to achieve that sort of thing, but only where it is absolutely necessary.

So, let’s just take a quick comparison between the two here. We can see that we’ve got a display form, this really just shows you a simple form explaining what the workflow is about to do. We’re going to find the Largest Census Track, and then after we show the form, we perform a query, and then we get the number of features and then we assign the largest feature to whichever the first one is. We have a ForEach that goes through them all, comparing them, and then we tell you which is the largest.

Over here, we’ve got a similar thing, we’ve got a form, we have a Query, we Create a Value for the largest, we’ve got For Each, and we’ve got an Alert. So, these are two equivalent workflows.

Here, we’ve got a viewer that’s going to run both of them in GVH. We have the Network tab open at the bottom here, so that we can see what’s going on behind the scenes.

First of all, we run the workflow in Essentials, you can that there’s our form telling us what it’s going to do. I click ‘OK’, it takes a moment. Then, we can see that there’s the result. So, there were over 1000 features from the query, which is the most you can get back from a query, there’s the name of the largest track and there’s it’s area. So, job done.

Notice that at this point, it’s going to request. Even after I click ‘OK’ for that alert at the end of the workflow, there’s still one final request, and it finally comes back and tells us that the workflow is completed.

So, the client is completely at the mercy of the server telling it what’s happening next and then it doesn’t stop sending it back until it tells it it’s finally done.

So, you can notice the second request here, the time that it took to respond was five and a half seconds, so that is quite slow. That’s where the query was happening and all the comparison of all of the features. Also, notice this, the request we sent after submitting the alert was actually quite a large request. If we look at the headers here, look at the size of the content, that’s 19728585, that’s huge. In fact, the browser doesn’t even want to show me the whole things, it’s truncated. So, that’s all the state of the workflow which includes the features, and all that stuff.

So, pretty slow there. Let’s now clear the console, and we’ll run it again from Geocortex Workflow and see the difference.

So, here we can see the appearance is slightly different. Over here on this side, we’ve had a request for an image here. That’s more a part of GVH than Workflow itself.

There we go. We’ve got the results already, that was way faster. We get the same response over 1000 features, the largest census tract is 9009, that’s the area, exactly the same. We click ‘OK’, and we are done.

You can see that the only network traffic here was that query. So, in the case of the first one, the query was done by the server, so it doesn’t show up in the browser’s traffic, but because the Geocortex Workflow runs in the browser itself, the browser initiated that query. Even though we were getting back 1000 features, that still was very quick, it only took 114 milliseconds there. That was much faster.

So, that was just a quick example of the difference between these two technologies. I hope that helps illustrate the point. Obviously, in a real workflow, things will be much more complicated and you would have many more steps, and actually the effect would be much more significant. This is was just really a simple example to give you the idea.

Thank you very much for your time. I hope this was useful. Bye!”

Not a Geocortex Workflow user and want to give it a try? See all it has to offer below!

Discover Geocortex Workflow


Categories:
Archive
Open: 2020
2020
August 7, 2020

Configuring KPI cards in Geocortex Web [Geocortex Tech Tip]

July 31, 2020

Find your way around a workflow using the new Navigator component [Geocortex Tech Tip]

July 24, 2020

Working with symbols in Geocortex Workflow (Accessing JavaScript 3.x & 4.x playground etc) [Geocortex Tech Tip]

July 22, 2020

Simplify Pipeline Integrity Management with Geocortex Inline [Webinar]

July 17, 2020

Configuring Geocortex Web Events in Geocortex Web [Geocortex Tech Tip]

July 10, 2020

Creating and configuring launch links in Geocortex Mobile [Geocortex Tech Tip]

July 3, 2020

Using environment variables for application management in Geocortex Web and Geocortex Mobile Designer [Geocortex Tech Tip]

June 26, 2020

Understanding feature actions in the Geocortex Web and Geocortex Mobile Designers [Geocortex Tech Tip]

June 19, 2020

Geocortex Essentials import/export support enhancements in 4.13 [Geocortex Tech Tip]

June 12, 2020

Using Union Geometries in Geocortex Workflow [Geocortex Tech Tip]

June 5, 2020

Removing unneeded applications in Geocortex Web and Geocortex Mobile Designer [Geocortex Tech Tip]

May 29, 2020

A deeper dive on advanced View Designer configuration [Geocortex Tech Tip]

May 22, 2020

Launching a workflow in Geocortex Inline [Geocortex Tech Tip]

May 20, 2020

Geocortex Essentials 4.13: Additional development tools and external widget support let you customize your apps even further

May 15, 2020

Understanding points of interest and station locator [Geocortex Tech Tip]

May 8, 2020

Using the Inline Designer to build linear referencing views [Geocortex Tech Tip]

May 1, 2020

Understanding performance differences between Geocortex Workflow and the workflow capability in Geocortex Essentials [Geocortex Tech Tip]

April 24, 2020

Printing a vector tile layer in Geocortex Printing vs the Printing widget in Geocortex Essentials [Geocortex Tech Tip]

April 17, 2020

Producing layer reports in Geocortex Reporting vs the Reporting widget in Geocortex Essentials [Geocortex Tech Tip]

April 10, 2020

Comparing dynamic forms in Geocortex Workflow vs Geocortex Essentials [Geocortex Tech Tip]

April 7, 2020

Take control of your GIS with Geocortex Access Control [Webinar]

April 3, 2020

Performing field inspections with Geocortex Mobile (OOB Editing) [Geocortex Tech Tip]

March 27, 2020

Working with Conditional Expressions in Geocortex Reporting [Geocortex Tech Tip]

March 20, 2020

Export support and new third party map integration widgets [Geocortex Tech Tip]

March 13, 2020

Configure and Monitor a Web AppBuilder Web Application from Geocortex Analytics [Geocortex Tech Tip]

March 11, 2020

Geocortex Events and COVID-19/Coronavirus

March 6, 2020

Running a batch script from an alarm with Geocortex Analytics [Geocortex Tech Tip]

February 28, 2020

Understand how your users are engaging with the tools in your applications [Geocortex Tech Tip]

February 21, 2020

How to manage alarms in Geocortex Analytics [Geocortex Tech Tip]

Open: 2019
2019
December 18, 2019

Geocortex in 2019, and a glimpse of what's to come

December 5, 2019

Four key benefits to adopting a mobile GIS solution

November 29, 2019

Using Geocortex Mobile to collect survey data [Geocortex Tech Tip]

November 27, 2019

Dive into Geocortex Analytics [Webinar]

November 22, 2019

How to input parameters on prints [Geocortex Tech Tip]

November 15, 2019

How to include feature attachments in reports [Geocortex Tech Tip]

November 14, 2019

Understanding application management in the Designer [Geocortex Tech Tip]

November 14, 2019

How to reference symbology from web maps [Geocortex Tech Tip]

November 14, 2019

How Geocortex Mobile can integrate with other apps [Geocortex Tech Tip]

November 14, 2019

Implementing Arcade Expressions in Geocortex Essentials [Geocortex Tech Tip]

November 14, 2019

Customer Spotlight: Geocortex Mobile

November 14, 2019

How to Format Your Reports [Geocortex Tech Tip]

November 14, 2019

Showing an image in a form after a file picker [Geocortex Tech Tip]

November 14, 2019

Richard Wiegmann Joins VertiGIS as President and CEO

September 27, 2019

Understanding the toolbar in Geocortex Web [Geocortex Tech Tip]

September 20, 2019

Refining Results in Geocortex Web [Geocortex Tech Tip]

September 19, 2019

Charting data using Geocortex Reporting: Honing your charting skills

September 13, 2019

Utilizing the flexibility of layout in Geocortex Web [Geocortex Tech Tip]

September 6, 2019

Creating Geocortex Web applications that move seamlessly between 2D and 3D [Geocortex Tech Tip]

August 28, 2019

Geocortex adds support for Arcade scripting and ArcGIS Online smart mapping

August 23, 2019

How to create sections and groups for your reports [Geocortex Tech Tip]

August 16, 2019

Displaying SQL Server Data in Geocortex Workflow [Geocortex Tech Tip]

August 14, 2019

Customer Spotlight: Geocortex Essentials

August 8, 2019

City of Austin: Spreading floodplain awareness with Geocortex

August 1, 2019

Geocortex Essentials 4.12: Improved integration with ArcGIS® Online

July 25, 2019

Introduction to Geocortex Printing: Learn to build stunning print templates

July 17, 2019

Updates to the Geocortex Product Life Cycle

July 8, 2019

Extending Web AppBuilder for ArcGIS® with Geocortex Essentials [Webinar]

July 4, 2019

City of Bellingham: Using Geocortex to take the stress out of water shut-off

June 27, 2019

Geocortex at the 2019 Esri User Conference

June 14, 2019

Customer Spotlight: Geocortex Workflow

May 17, 2019

Important Notice - Outage Issues & New Support Cases

May 17, 2019

How to build a summary report with aggregations of feature data [Geocortex Tech Tip]

May 16, 2019

Technology Q&A: Geocortex Mobile

May 10, 2019

How to create print templates for Web AppBuilder for ArcGIS®[Geocortex Tech Tip]

May 8, 2019

Dive into Geocortex Printing [Webinar]

May 3, 2019

Using Geocortex Workflow and Geocortex Reporting to produce a multi-layer report [Geocortex Tech Tip]

May 1, 2019

Market-Leading GIS Software and Services Companies Join to Form VertiGIS

May 1, 2019

Introducing VertiGIS

April 18, 2019

Integrating Workflows into Geocortex Mobile [Geocortex Tech Tip]

April 17, 2019

Customer Spotlight: Geocortex Reporting

April 12, 2019

Using Geocortex Go to preview app configurations [Geocortex Tech Tip]

April 10, 2019

How to Address Complex Form Navigation Using Geocortex Workflow

April 5, 2019

Building native, offline IOS, Android and Windows apps with Geocortex Mobile Viewer [Geocortex Tech Tip]

April 3, 2019

Streamlining mobile operations with Geocortex Mobile Viewer [Webinar]

March 29, 2019

A better way to run geoprocessing tasks in Web AppBuilder for ArcGIS [Geocortex Tech Tip]

March 28, 2019

Extend the reach and capabilities of your applications with integrations [eBook]

March 22, 2019

Displaying data from SQL Database when you select features [Geocortex Tech Tip]

March 20, 2019

How Geocortex users are enriching the communities they serve

March 15, 2019

How to Configure a Geocortex Essentials layer report with Geocortex Reporting 5 [Geocortex Tech Tip]

March 14, 2019

Region of Waterloo: How GIS & Geocortex technology helped meet local Source Protection Plan requirements

March 6, 2019

Integrating Business Intelligence and Data Sources with Geocortex Essentials [Webinar]

March 1, 2019

How to quickly add attachments to new features when editing [Geocortex Tech Tip]

February 22, 2019

Generating a report with sub reports from external data sources [Geocortex Tech Tip]

February 20, 2019

Geocortex Essentials 4.11: Saving Time & Increasing Efficiency

February 15, 2019

Accessing Samples and Building your First Workflow [Geocortex Tech Tip]

February 12, 2019

Open Beta of Geocortex Printing 5 Has Begun

February 8, 2019

Different Ways of Creating Selections of Features in Geocortex Viewer for HTML 5 [Geocortex Tech Tip]

February 6, 2019

4 Best Practices to Follow When Using Geocortex Workflow 5

February 1, 2019

Creating a Report that Displays a Screenshot of the Map [Geocortex Tech Tip]

January 28, 2019

Diving Into Geocortex Reporting 5 [Geocortex Tech Tip]

January 24, 2019

How Geocortex is Advancing Water Management Solutions

January 16, 2019

Creating Custom User Experiences with Geocortex Workflow 5 [Webinar]

January 11, 2019

Showing the search results using the item picker in Geocortex Workflow 5 [Geocortex Tech Tip]

January 9, 2019

City of Troy: Using GIS and asset management technologies to manage legislative requirements

January 4, 2019

Using scripting to put attachments in reports in Geocortex Reporting 5 [Geocortex Tech Tip]

Open: 2018
2018
December 21, 2018

Integrating Pictometry, Bing and other 3rd party maps within your Geocortex applications

December 19, 2018

Recapping the Texas Geocortex Regional User Group

December 14, 2018

How to use Geocortex Workflow 5 to populate the Attribute Table in Web AppBuilder for ArcGIS [Geocortex Tech Tip]

December 12, 2018

Finding yourself: Using geolocation in mobile and web applications [Webinar]

December 7, 2018

Enabling real-time user-to-user map collaboration within Geocortex Essentials

December 5, 2018

Reflecting on 2018

November 30, 2018

Creating mailing labels with reports with Geocortex Reporting 5 [Geocortex Tech Tip]

November 29, 2018

Alberta Energy Regulator: Supporting safe and responsible energy resource operations

November 26, 2018

Important update for ArcGIS and Transport Layer Security (TLS) Protocol Support!

November 23, 2018

Using fine-grained security to control access to layers, features, attributes and application functionality [Geocortex Tech Tip]

November 21, 2018

Enhancing Web AppBuilder for ArcGIS® with Geocortex Reporting [Webinar]

November 16, 2018

Using Geocortex Workflow 5 to automatically display a form for editing layer attributes [Geocortex Tech Tip]

November 15, 2018

Geocortex Achieves Esri’s “Release Ready Specialty” Designation

November 14, 2018

Celebrating GIS Day with York Regional Police: How GIS Data Has Mitigated Risk & Increased Efficiency in Crime Prevention

November 9, 2018

How to access a SQL database from a workflow using Geocortex Workflow 5 [Geocortex Tech Tip]

November 2, 2018

How to send an email from a workflow using Geocortex Workflow 5 [Geocortex Tech Tip]

October 26, 2018

How to add and configure charts inside reports with Geocortex Reporting 5 [Geocortex Tech Tip]

October 24, 2018

Geocortex Water Webinar Series

October 19, 2018

Integrating Geocortex Essentials with ArcGIS Online and ArcGIS Enterprise portal [Geocortex Tech Tip]

October 17, 2018

Cross-Platform Development with Xamarin [Webinar]

October 12, 2018

City of Fort Collins: Dynamic flood maps for public awareness, and flood insurance rate saving

October 2, 2018

Technology Q&A: Geocortex Workflow 5 “Behind the Firewall”

June 27, 2018

Geocortex Essentials 4.10 is here!

June 12, 2018

Geocortex and the GDPR

June 6, 2018

Geocortex at the 2018 Esri User Conference

May 15, 2018

Technology Q&A: The evolution of Geocortex and Web AppBuilder for ArcGIS

April 25, 2018

How to manage data collected from Geocortex Workflow 5 forms [Geocortex Tech Tip]

April 18, 2018

Delivering accessible mapping applications for everyone [Geocortex Tech Tip]

April 11, 2018

How to search for data in a non-spatial database [Geocortex Tech Tip]

April 5, 2018

Configuring Geocortex Analytics to monitor a new Portal for ArcGIS instance [Geocortex Tech Tip]

March 27, 2018

Getting started with forms in Geocortex Workflow 5 [Geocortex Tech Tip]

March 21, 2018

Using Geocortex Workflow with Web AppBuilder for ArcGIS [Geocortex Tech Tip]

March 15, 2018

Understanding tool usage in your GIS applications [Geocortex Tech Tip]

March 7, 2018

Running Geocortex Essentials workflows from an identify operation [Geocortex Tech Tip]

March 2, 2018

GIS Health Assessment: A new way to think about your system

February 28, 2018

Using the in-app help system in Geocortex Workflow 5 [Geocortex Tech Tip]

February 21, 2018

How to configure a personalized dashboard in Geocortex Analytics [Geocortex Tech Tip]

January 25, 2018

GIS is shifting to SaaS, and it’s a win for everyone


Categories

Popular Tags
Accessibility Active Operating Picture ArcGIS customer spotlight Customer Story Data Models Designer Energy Esri Geocortex Geocortex 5-Series Geocortex Analytics Geocortex Essentials Geocortex Inline geocortex integrations geocortex mobile Geocortex Mobile Viewer geocortex printing Geocortex Reporting Geocortex Reporting 5 geocortex tech tip Geocortex Tech Tips geocortex training Geocortex Viewer for HTML5 geocortex web Geocortex Web Viewer Geocortex Workflow Geocortex Workflow 5 GIS GIS Day GIS Health Integrations mobile gis Oil & Gas Pipelines Tech Tip Tech Tips Tip Tips Transportation vertigis Web AppBuilder Web GIS Workflow Xamarin

Contributors