Statement on GZIP compression TM1 <-> Canvas <-> Browser


#1

Hi,

is there room for optimizing the HTTP traffic in terms of volume by enabling compressioin such as GZIP? I’m not quite familiar with configuration of Apache etc, so before diving into that topic, I would like to understand if such configurations are already out-of-the-box with a default Canvas installation or not.

In theory, there should be two main traffic lanes that may benefit:

  1. Traffic between TM1 REST API and Cubewise Application Server
  2. Traffic between Cubewise Application Server and local Web Browser

We have a lot of users on the other side of the world, and they benefit from each byte that has not to be sent around directly (referring to point 2). Coming from TM1Web, Canvas is already a huge step forward also in terms of responsiveness. But is HTTP compression enabled by default or is it worth to dive into configuration to further optimize the user experience?

What’s your experience and recommendation?

Thanks a lot,
Andreas


#2

Hi @andreas.franke,

Yes, it is easy to implement with Tomcat, just add the compress* options to the connector in conf\server.xml. We will add it as the default option in the next release.

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json"
               compression="on"
               compressionMinSize="2048"
      />

#3

Hi @andreas.franke,

In relation to the above and from Canvas version 1.2.2 and up, the server should already have that. Note that this is usually affected by selecting the “Install Canvas Server” option.

Once you have confirmed that the above settings are in place, a way to check is to open up Chrome’s Developer tool for example, and check the “Size” column:

Under that column, there are two figures: one is for the transferred-over-the-network size, and the other one at the bottom should be the actual/uncompressed size.


Paul