Skip to main content

Getting Started (MAE)

Lesson 1: Installing M.App Enterprise

In this tutorial you'll find some detailed information about the installation of M.App Enterprise. It contains four categories for each and every single application, which comes within platform.
💡
Before installing M.App Enterprise you need to create an empty database. This applies to the Master database (metadata schema for the installation) as well to the Tenant database (metadata schema for the studio)
⚠️
Oracle client is no longer needed since M.App Enterprise 16.8 Update 1.

Application

The installation progress is pretty straight forward. There are some things to consider of:

  1. A warehouse user must be created beforehand installing M.App Enterprise
    • Most of the time it is sufficient to create a local user account on the server, where the application should be installed
    • Or you can also use a user from the active directory
  2. WebDAV mustn't be used if you want to install M.App Enterprise on the same server
  3. Master DB --> the metadata schema for Management user, Tenants and Charges
    • Create an empty one before installing M.App Enterprise
📝
If you want to use Oracle for the master database please ensure that the correct Oracle client is installed on the server (Oracle 12c or higher - 64bit)
⚠️
Oracle client is no longer needed since M.App Enterprise 16.8 Update 1.

Responsibilities of the Management user

This user is the "super" admin if this is a fitting name. They controls all tenants with the corresponding initial studio administrator account and is responsible for the charge uploads of all M.App Enterprise environments.

Tenants

Tenants can be different customers for example. They are all managed with the same M.App Enterprise application, but the metadata schemas can be located on different server even in different database provider.

For example: M.App Enterprise is installed on Server 1 with one management user and for different purposes or customers or whatever Tenant 1 in Oracle on Server 2, Tenant 2 in SQLServer on Server 3 and Tenant 3 in PostGIS also on Server 3 are created. Please ensure that everytime a new tenant is created, an empty database has to be created beforehand. The Studio Administrator of Tenant 1 is accessing his studio with the URL: https://SERVER2/Studio/?tenant=Tenant1 and so on.

All metadata schemas are separated from each other and only the management user is seeing and can edit the different connections. By creating a tenant the management user has to create the first studio administrator account as well. This studio administrator has full access to the user and role management for all the apps he ever has created.

Database requirements

Depending on the database provider, there are some requirements, which must be fulfilled by the user, who created the database.

  • PostgreSQL: Case - sensitive database. So all tables AND columns must be lowercase.
  • SQL Server: Case - insensitive database. Can be checked by the following SQL statement:
    • Server:
      • SELECT SERVERPROPERTY('COLLATION')
    • Database:
      • SELECT DATABASEPROPERTYEX('AdventureWorks', 'Collation') SQLCollation;
    • Column:
      • SELECT table_name, column_name, collation_name from INFORMATION_SCHEMA.COLUMNS where table_name = @table_name

Environment

Defines the name of the environment for which the charge should be used. So if you are using different systems, you can charge different environments with a different amount of hours. For example you have a Development and a Production environment, than you can use for example 2000h (one charge file) for the Dev environment and for example 6000h (another charge file) for the Production environment.

Charges

Upload of the charge file. Charge files (license) are available for download through the Hexagon Safety, Infrastructure & Geospatial Licensing Portal. A valid charge file is required to license and use the M.App Enterprise application. The optional components of Geoprocessing Server and Luciad Fusion Studio are licensed through this tiered charge file and do not require separate charge file upload.

TileService

We recommend to install the application of M.App Enterprise and the Tile Service on two separate server. The installation process is also straight forward.
There are two things to consider of:

  1. You have to use the same warehouse user you have created in the application itself
    • If the application and the tile service is running on the same server you can leave the text field Domain empty or type in .
    • You have to use the same master database for the Tile Service and the application.
📝
Again if you want to use Oracle please ensure that the correct Oracle client is installed on the server (Oracle 12c or higher - 64bit). More information can be found here.
⚠️
Oracle client is no longer needed since M.App Enterprise 16.8 Update 1.

Geoprocessing server

Starting from M.App Enterprise 2018 the Geoprocessing Server is delivered as an additional standalone component. It is mandatory to install it on a separate server (it could be the same server you install TileService on, but you have to consider carefully the loading of this server in production environments).
One of the last steps of the M.App Enterprise wizard includes the configuration of the Geoprocessing Server endpoint. Please put this URL in the form (with no slash at the end):
https://[GEOPROCESSINGSERVER]

The main thing to consider is the access to the Warehouse folder from this additional server.

💡
The warehouse should be configured as UNC path and should be accessible from both servers using the warehouse user.

More details can be found in the following tutorial:
PLACEHOLDER_GHOST_URL

LuciadFusion server

With the release of M.App Enterprise 2019 LuciadFusion is delivered as an additional standalone component. It is highly recommended to install LuciadFusion on a separate server. You can download the dedicated installer from an additional URL provided within the M.App Enterprise download page.
The last step in the M.App Enterprise setup is the configuration of the Fusion Server endpoint. Please put this URL in the form (with no slash at the end):
https://[FUSIONSERVER]

For more information about installing LuciadFusion, please have a look at the following tutorial:

Installation of Luciad Fusion for M.App Enterprise
This article gives you some information about the installation of Luciad Fusion, which is integrated since the release of M.App Enterprise 2019. 💡We strongly recommend to install Luciad Fusion on a seperate server.💡For the storage of the metadata you will need to create an empty database before…

Silent installation

⚠️
DISCLAIMER: This silent installation knowledge article was created as a result of experimental testing. There's currently no official support for this way of deployment, but most tests showed that the installation works correctly.

M.App Enterprise installer is simply an MSI package installer type. It is therefore possible to pass configuration parameters to it like with any other software installation.

Command line sample

"M.App Enterprise.exe" /L*V install-quiet.log /qb APPDIR="C:\Program Files\Hexagon\M.App Enterprise" GEOPROCESSINGAPIURL="https://gp-server"" DOMAIN_NAME="" USER_NAME="Administrator" USER_PASSWORD="Qwerty123" CERTIFICATE="4AC535E11CCFF4C0B658DEE5A437C1FB00A6AD64" MAILHOST="smtp.mail-provider.com" MAILENABLESSL="True" MAILPORT="587" MAILUSERNAME="bogus-user@gmail.com" MAILPASSWORD="boguspassword" CONNECTIONSTRING="Data Source=localhost\SQLEXPRESS;Initial Catalog=MAPPMASTER;User ID=user;Password=password" PROVIDERNAME="SqlServer"  FUSIONSERVERURL="https://luciad-fusion-server"" WAREHOUSELOCATION="\\machine-or-IP\MAE_Warehouse\"

The sample above uses /qb switch which enables minimal GUI. The full list of options can be read here

Parameters list

Following is the list of parameters that you should provide to MAE installer to mimic the GUI input.

  • APPDIR="C:\Program Files\Hexagon\M.App Enterprise"
  • GEOPROCESSINGAPIURL="https://gp-server""
  • DOMAIN_NAME=""
  • USER_NAME="Administrator"
  • USER_PASSWORD="Qwerty123"
  • CERTIFICATE="4AC535E11CCFF4C0B658DEE5A437C1FB00A6AD64"
  • MAILHOST="smtp.mailserver.com"
  • MAILENABLESSL="True"
  • MAILPORT="587"
  • MAILUSERNAME="bogus-user@mailserver.com"
  • MAILPASSWORD="bogus-password"
  • PROVIDERNAME="SqlServer"
  • CONNECTIONSTRING="Data Source=localhost\SQLEXPRESS;Initial Catalog=MAPPMASTER;User ID=user;Password=password"
  • FUSIONSERVERURL="https://luciad-fusion-server""
  • WAREHOUSELOCATION="\machine-or-IP\MAE_Warehouse"

Comments

CERTIFICATE parameter expects certificate thumbprint ID.

Thumprint.png

You can generate a new self-signed certificate, or use existing certificate using a PowerShell script. Sample script could look like this:$Cert = New-SelfSignedCertificate -DnsName localhost -CertStoreLocation cert:\LocalMachine\My $Thumbprint = $Cert.ThumbprintPROVIDERNAME valid values are:

  • SQLServer
  • PostgreSql
  • Oracle

You must use standard connection string per each provider which is typically used with .NET applications. This connection string is written into the main web.config file during the installation.

Application Pools

After the installation finishes, it is necessary to adjust the Application Pools because the silent installer will not create proper Log-On identities. This can be solved by the following PowerShell script:

Import-Module WebAdministration 
$AppPools = Get-ChildItem -Path IIS:\AppPools | where { $_.Name -match "M.App" } 
foreach ($Pool in $AppPools) 
	{ 
    	$Pool.processModel.userName  = "Domain\UserName" 
    	# With no domain use: 
        # $Pool.processModel.userName  = "LocalUserName"
        $Pool.processModel.password  = "Password"
        $Pool.processModel.identityType = 3 $Pool | Set-Item 
    }

Other observations

  • You might need to work with UAC restriction, for a default Windows settings, the installation requests explicit user authorization to run the installer.
  • There might be some installation warnings or error, such as DB upgrade fail a tenant which has its database down => It is recommended to read the generated install-quiet.log file for any warnings or errors.