# Systems Integration # - [Systems Requirements](#sr) - [Processor Architecture](#pa) - [Installation](#si) - [NSM Server](#sinsmi) - [Install](#sinsmi) - [Start and Stop Service](#sinsms) - [Authentication](/doc-integration-authentication) - [Log Files](#logfiles) - [Security Certificates](/doc-integration-certificates) - [NSM Client](#sinsmi) - [Publish - Software](#sinsmpc) - [Publish - Configuration](#sinsmpcc) - [Install](#sinsmic) - [Configure](/doc-integration-client-configuration) - [Example](/doc-integration-client-example) - [Connecting Networks](/doc-integration-networks-connections) - [ASTRO (Motorola P25)](/doc-integration-networks-connections#astro) - [Dimetra (Motorola Tetra)](/doc-integration-network-connectionss#dimetra) - [MAP27 (Mobile Access Protocol MPT1327 Radio Interface)](/doc-integration-networks-connections#map27) - [Genesis GenSpout](/doc-integration-networks-connections#genspout) - [ATLAS (JVC KENWOOD P25)](/doc-integration-networks-connections#atlas) - [Processing Network Data](/doc-integration-networks) - [ASTRO (Motorola P25)](/doc-integration-networks#astro) - [Dimetra (Motorola Tetra)](/doc-integration-networks#dimetra) - [MAP27 (Mobile Access Protocol MPT1327 Radio Interface)](/doc-integration-networks#map27) - [Genesis GenSpout](/doc-integration-networks#genspout) - [ATLAS (JVC KENWOOD P25)](/doc-integration-networks#atlas) - [Licensing](/doc-integration-licensing) - [Backup](/doc-integration-backup) - [Setup a Private Map Server](/doc-integration-map-server) - [Custom Tiles for your Map Server](//doc-integration-map-server-custom-tiles) - [Configuring N-Tier High Availability](/doc-integration-ha) - [Load Balancer (using Apache)](/doc-integration-apache) - [Systems Architecture](/doc-architecture) <div id="sr"></div> ## Systems Requirements ## The following are the minimum system requirements of an NSM installation. *CLIENT* * Hardware Requirements * - Intel Core i5 - 4GB of RAM - 500MB or more available disk space. - Network (LAN/WiFi/WAN) Interface * Software Requirements * - Microsoft Windows XP/Vista/7/8+ - Microsoft .NET Framework 4.5.2 *SERVER* * Supported Virtualization * - VMWare - Microsoft HyperV * Hardware Requirements * Hardware requirements assume SQL Express running on same instance as NSM Services. Note: It is recommended that a single NSM Server instance exists for each 50 concurrent NSM Client connections. If for example the configuration supports 150 NSM Clients where all 150 may be connected at anyone time, specify 3 or more NSM server instances. (Up to 1000 mobile devices) - 2 processor Intel ZEON 2.4GHz (or equivalent AMD) - 8 GB RAM - 100GB Data Partition - Gigabit Ethernet (1000-2000 mobile devices) - 4 processor Intel ZEON 2.4GHz (or equivalent AMD) - 16GB RAM - 500GB Data Partition - Gigabit Ethernet * Software Requirements * - 64 Bit Microsoft Windows Server (2016 R2 SP1 or 2012) - Windows Roles and Features (Message Queueing) - Microsoft .NET Framework 4.6.2 - Microsoft SQL Server (or Express for limited storage) <div id="pa"></div> ## Processor Architecture ## The NSM server is available for deployment as an x64 or an x86 distribution. Where decryption and encryption of Motorola Pervasive User Registry database columns are required, an x86 installation is mandatory due to the support of Premier MDC legacy encryption libraries. Where this feature is not required, x64 is recommended. <div id="si"></div> ## Installation ## <div id="sinsmi"></div> ### NSM Server ### <div id="sinsmi"></div> #### Pre Requisites #### Install Microsoft Message Queueing from the Windows Add Remove Programs and Features option in control panel or Server Manager as shown below: <img src="/content/images/doc-integration-install-11.png" width="450"/> #### Install #### NSM installs as a server (and optional data proxy) component only. Once the server is installed, configured and operational one or more clients may be published as a click once applications over either an external web server or via the embedded NSM web server. For first time installation, the client may be run direct on the NSM server. Follow the installer and setup utility prompts to install and configure the server. At any point in time when running the setup utility, an unexpected issue is encountered, inspect the 'Logs\SetupUtility-debug.txt' log file for more information and send to support@mtechs.com.au if it cannot be resolved. Where the configuration requires a Data Proxy, this is delivered as a seperate installer which executes in much the same way as the server. The instructions listed in this section for how to install the server component can be used for the Data Proxy also. <img src="/content/images/doc-integration-install-1.png" width="450"/> Install the NSM Server product to the selected installation directory. When this step completes, the full product binaries and configuration shall be copied to the selected output path. It is recommended that NSM server is always installed under the 64 bit program files path. Where NSM shall be installed at multi instance, suffix the installation folder using an acronym for the instance. For example for 'POLICE' use c:\program files\mtechs\NSM.Server.POLICE. <img src="/content/images/doc-integration-install-2.png" width="450"/> Confirm the installation. <img src="/content/images/doc-integration-install-3.png" width="450"/> When the media finishes install, it shall immediately lauch the Setup Utility. The setup utility itself is located in the installation path under the filename 'SetupUtility.exe' and may be re-run at any time. By default, the utility launches in 'RECONFIG' mode but can also be run in 'UNINSTALL' and 'INSTALL' mode. To re-run the SetupUtility in install mode, use the command line: SetupUtility.exe /mode=INSTALL First confirm the installation location for configuration. <img src="/content/images/doc-integration-install-4.png" width="450"/> Select the configuration to install. When the 'Next' button is selected, the Configuration shall be copied from the install location 'Configuration\Store' path to the 'Configuration\Running' path. In addition it shall copy in the MultiServiceHost.exe.config, DataManagerMap.xaml, Log4Net.config to the installation path and the NSM.Client.zip to the Publish path. You can confirm the active configuration at any time by inspecting the files under Configuration\Running. If the configuration list is empty, or you wish to add a configuration pack, select the Add Configuration Package (.ZIP) button. This configuration pack should include the full server/client configuration for your installation and will typically be provided alongside the Setup.exe windows installer. <img src="/content/images/doc-integration-install-5.png" width="450"/> The setup utility will now attempt to provision the database based on the connection strings it has found under the 'Configuration\Running\DataManagerMap.xaml' file. Before selecting next, ensure the connection strings point to a database that is accessible to the system. If accessible the SetupUtility will create the required databases and then run the 'Setup\MsSql\SyncObject.sql'script on each database. The result should be multiple 'NSM.<datamodel>' databases, each with the SyncObject schema available. If this step fails, you may attempt to perform these steps manually to understand what may be preventing the automated process to continue. The utility shall also display the simple error encountered on any failure and a detailed log is available at 'Logs\SetupUtility-debug.txt'. <img src="/content/images/doc-integration-install-6.png" width="450"/> The Windows Service will now be installed on the machine. Ensure the executing username and password are correct and hit the 'Install ...' button before selecting Next. On success the server should now have a 'Mtechs Service Host (NSM.Server)' windows service in the Services list. This step may also be completed manually at the command prompt by running the following under the installation directory: MultiServiceHost.exe /install /username={username} /password={password} Be sure the username is fully qualified with the domain if installing on a domain (for example MTECHS\nsm_admin). It is recommended to use a specfic admain for executing the NSM server as some configurations require specific permisssions, such as access to UNC network shares that may cause permission errors witht the default Network Service user. <img src="/content/images/doc-integration-install-7.png" width="450"/> Install the license for the server. This should be a XML file provided with your purchase. The license file ensures the 'unlicensed' popup does not appear when each client connects and also ensures the limit of client connections is set to the quantitiy of the purchased license. To proceed with a free license select 'Download Trial'. A license can be applied manually at a later date by simply copying the license.XML file to the installation folder and restarting the NSM Windows service. <img src="/content/images/doc-integration-install-8.png" width="450"/> Optionally start the newly installed windows service by clicking the 'Start ...' button in the following window. <img src="/content/images/doc-integration-install-9.png" width="450"/> Your NSM service should now be ready for operation. Note that depending on your installation configuration, a NSM Server Data Proxy may also need to be installed. The dataproxy is used where relaible data feeds are required as input to the NSM server. Once started, you should be able to inspecty the NSM Server log file under 'Logs\NSM-Server-debug.txt' and ensure the service has begun without any errors being reported in the log. If the service does fail to start, it should also log the error to the Windows Application Event log. If issues persist at this step, submit the error to support@mtechs.com.au. <div id="sinsms"></div> #### Start and Stop Service #### Use the standard Windows Service Management WMI snap-in to start and stop the service as pictured below. <img src="/content/images/doc-integration-startservice.png"/> Once the NSM Server service is started, verify its operation by manually starting a NSM client on the server itself. This can be achieved by executing the following (.application) from Windows Explorer: <installation directory>/publish/NSM.Client.application If the server is up and correctly accepting client connections, the client should connect automatically. If it doesn't, take a look at the [trouble shooting initial client connection](/doc-troubleshooting). Once this is done you are ready to start deploying the client for other users (see publishing). <div id="logfiles"></div> #### Log Files #### If at any point in time you need to inspect the process log files for NSM Server, NSM Data Proxy or the Setup Utility processes, inspect the plain text log files under the folder: {Installation Path}\Logs In most default configurations a 'Debug' and a 'Standard' log file are enabled, where the debug file offers low level log events and the standard log file displays error and warning events only. <div id="sinsmpc"></div> ### NSM Clients ### <div id="sinsmpc"></div> #### Publish - Software #### Publishing a NSM client is the process of defining deployment URLs, signing/securing the click once assemblies and then making available these assemblies via a web server. It is also the process used when deploying a new version of the client software binaries. Once deployed, administrators can also deploy client configurations where the configuration of each deployment URL can be unique. For more information on this, see section 'Publish - Client Configuration'. NSM server takes the complexity out of click once application deployment by providing a simple command from the client interface which allows administrators to quickly deploy one or more click once installations. In addition, there is no need to setup a web server to publish the click once assemblies and bootstrapper (setup.exe) because NSM server can host these files itself using its embedded web service. To prepare for this, the following must be setup on the server: * Install the deployment certificates to the NSM server certificate store. NSM comes predeployed with an issuer certificate and a signing certificate. The administrator may use these certificates or alternatively generate their own certificates using OpenSSL or similar tools. For initial deployments, it is recommended to use the provided certificates. To get started: - Navigate to the click once assembly and bootstrapper location 'installation folder>\publish'. - Start the Microsoft Management Console (MMC) by running 'mmc' from a 'Run' dialog or command line. - Add the Certificates snap-in to MMC for the local user, where this user is the same user as the user running the NSM.Server service in Windows Services. - Install the Issuer certificate to the 'Trusted Root Certification Authorities' location. The provided issuer certificate is called 'mtechs.com.au'. <img src="/content/images/doc-integration-certstore-root.png"/> - Install the Signing certificate to the 'Personal' location. Note that the user being used for the certificate installation must be the same user as the running NSM service if the NSM server is to be able to find these certificates when publishing it from the client user interface. The provided signing certificate is called 'apps.mtechs.com.au'. <img src="/content/images/doc-integration-certstore-personal.png"/> - Verify the certificate trust chain by opening the signing certificate within MMC and inspecting the certificate path is 'OK'. <img src="/content/images/doc-integration-certstore-verify.png"/> * Ensure 'mage' is installed to enable signing of the assemblies on the server. This component is part of the Microsoft Windows SDK or Visual Studio Command Line Tools package and may be downloaded from [here](https://www.microsoft.com/en-us/download/details.aspx?id=8279)). NSM Server expects the executable location for mage to be at: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\mage.exe * Ensure the client application is running and operating as expected locally to the NSM server machine. This should be a simple task of running the .application file from the following location on the server: <installation folder>\publish * Publish a client via the NSM Client interface. Once all the above requirements have been met it is time to publish the click once client application. First this requires defining the installation URL. Note that this URL is the accessible web URL for your environment and may include multiple URL's if the client is to be published for example for both intranet and internet users, where the URL may differ. The below screenshot shows an example of client publishing URLs for both intranet and internet installations. Access this dialog from the 'Settings->Preferences->Client Publishing' menu from within a NSM client. If this is a first time deployment, that client must be run locally on the server. <img src="/content/images/doc-integration-client-publish.png"/> Once the client URLs are defined, select 'Publish Options->Publish Clients' from this dialog and confirm the publish operation was successful via the log event within NSM on the client user interface. Secondly, navigate to the following NSM server location and verify the published files are in place. <installation folder>\content\clients\nsm\<publish name> These published files should also now be immediately accessible from your NSM server web service on the following URL. Administrators should consider making this URL available to users or copying the files from this folder to the appropriate location on another web server which reflects the URL specified in the publish location. http://nsm.server.ip:wsport/content/clients/nsm/<publish name>/setup.exe * Verify installation via a client. Navigate to the specified URL and install the client from a remote PC. Note: It is recommended (but not required) that the Trusted Root Certification Authority certificate is installed on the target remote PC's to prevent security warnings at installation time. To achieve this: - Install mtechs.com.au in the LocalMachine -> Trusted Root Certification Authority certificate store. - Install the apps.mtechs.com.au certificate in the LocalMachine -> Trusted Publishers certificate store. If these certificates are not installed, users are required to authorize the 'untrusted application installation', however this should not affect the running application after installation. <div id="sinsmpcc"></div> #### Publish - Configuration #### Publishing the client configuration includes publishing the Running Config of a client so that all other clients deployed at the same URL will assume the running configuration of the published version. The configuration includes: - All settings defined in the 'Preferences-Settings' window (server URLs, UI configuration, Application title etc) - ShapeFiles - All User Interface structure (what modules are active on the client) For a more in-depth view of what is included in the running configuration, open the client installation directory and navigate to 'Configurations\Running'. Inside this folder is a list of .xaml files (UI Structure), a ClientSettings.json file (Settings) and Shapefiles (.shp) that determine the running configuration of the client. When a configuration is published, the contents of this folder is compressed (zipped) and then transfered to the server and placed at the deployment URL location. For example, if the deployment URL is http://mynsmserver/content/clients/nsm/example/setup.exe then the configuration will typically be stored at (assuming default install path): c:\program files\mtechs\nsm.server\content\clients\nsm\example\NSM.Client.zip When each client starts it first checks the last modified time of this file (via a HTTP request) and if modified it will download this file, decompress it to the same location at the client and resume execution. To deploy a client configuration: - Start the NSM client and logon as an administrator - Open the Preferences -> Settings - Select Client Publishing - Select the Deployment URL from the list of deployed URLs - Select the 'Publish Configuration' button. <img src="/content/images/doc-integration-client-publish.png"/> To verify the configuration has been successfully published you can verify the server path corresponding to the deployment URL now has a new NSM.Client.zip file with a created date matching the time of the publish. <div id="sinsmic"></div> #### Install #### The client is pre-published as a click once application and installed under the service installation folder under the path 'publish', or if published to specific deployment URLs (see Publishing), under the content/clients/nsm folder. After the NSM service is started, the NSM client will not be immediately available for click once deployment. First the administrator must define what the publish URL(s) for the click once client installation will be and then publish the client at those URL(s). Notes: - The client requires TCP port 4001 for communications inbound to the NSM Server. - The client will by default attempt to connect to local host. To override this setting, start the client and select Preferences->Connection to repoint the client to an alternate NSM Server. Once installed you should now attempt to configure your client interfaces. See section [Client Configuration](/doc-integration-client-configuration).