HttpVPN Developer's Guide: Web App Installer Creation Overview

Overview

This document gives high-level overview of the steps that need to be taken in order to create an installation package for your web application, regardless which technology is used to create your application and its installer.

This content of the document assumes that reader is familiar with the following topics:
- Developer's Guide: The Overview.
- Developer's Guide: Creating Your Web App Store.
- Developer's Guide: Creating Application's Release Definition and managing product lines.

The Flow of the Installation Process of the HttpVPN-Enabled Web App

Let's say you already have a regular redistributable intranet web app, which becomes accessible inside the local-area network after the installation. All you need to turn such intranet application into a secure Internet application is the following change to the installation routine:

  1. Install HttpVPN Proxy on the client PC.
  2. Install your app (and a web server, if necessary).
  3. Launch HttpVPN Proxy Registration utility with the command line including application's intranet URL and application's App Store Release ID.

Step 1: HttpVPN Proxy Distribution and Installation

In order to implement this step, a developer needs to get HttpVPN Proxy redistributable package. It comes in two flavors: one is a self-installing EXE, and another is the prerequisite for the Visual Studio Setup & Deployment project. First kind, the EXE, is best for InstallShield, WISE or any other third-party installation authoring tools. Second option is for Visual Studio 2005 and 2008 developers, who create installers right in the Visual Studio.

Step 2: Installing Your Application

If you are using InstallShield, WISE or any other non Visual Studio installation authoring tool to implement this step, or if you need HttpVPN Proxy redistributable components for any other reason, download HttpVPN Proxy runtime using the second link on the download page. Include the downloaded EXE into your app's setup package, and launch the HttpVPN Proxy installer before executing step 3. If your app's setup package is Windows Installer/MSI-based, then you need to launch HttpVPN proxy installer before the MSI installation of your app, because normally one MSI installer can't launch another, while installation is in progress.

Step 3: Launch HttpVPN App Registration Process

To register your app with HttpVPN (at this point both HttpVPN Proxy and your application are already deployed) the installer has to know web app's intranet URL and its Web App Store release ID, and then launch HttpVPN application registration utility.

To see the exact command line (except the URL) for the start of the app registration process, go to the Release Management page of your App Store, and then click "Proxy Reg Info" link:
Web App Store's release management page

If you click the "Proxy Reg Info" link on the page as shown on the screen-shot above, the release management page will display complete command line that your installer will need to run to kick off the app registration process with the HttpVPN:
Release registration information for installer

As you can see, the command line has following format:

"%ProgramFiles%\UltiDev\HttpVPNProxy\Plugins\MyOwnSecureWeb.com\AgentPluginInstallUtility.exe" /SKU=<App Release GUID> "/AppUrl=<App's intranet URL>"

... and the value of the /SKU is provided by Web App Store, as shown on the screenshot above. Just supply application's intranet URL, and the installer will start the process of application registration with HttpVPN.

Whenever /AppUrl parameter is used, the registration utility assumes that default document of the URL is in application's root. For example, if web app was registered as /AppUrl=http://host/Folder/Subfolder/Index.htm, the registration utility will interpret it as if http://host/Folder/Subfolder/ is the application root. If you want to register the same application with its root being http://host/Folder/ and default document residing in the subfolder (Subfolder/Index.htm), the registration command line will have slightly different parameters:

"%ProgramFiles%\UltiDev\HttpVPNProxy\Plugins\MyOwnSecureWeb.com\AgentPluginInstallUtility.exe" /SKU=<App Release GUID> "/AppUrlRoot=<App's URL root> "/AppUrlDoc=<App's URL default doc in subfolder>"

AgentPluginInstallUtility.exe Command Line Parameters

ParameterDescriptionExamples
/AppRegFile Instructs the utility to load all registration parameters from an .hpvna file. Instructs the utility to load all registration parameters from an .hvpna file. When used, all other parameters are ignoreddds a Start menu item for the re-registration of the app. A shortcut to an .hvpna file from a Start menu will allow users to re-do HttpVPN application registration part in case it was not completed during application installation. "/AppRegFile=c:\Program Files\ISVName\WebApp\Re-register app with HttpVPN.hvpna"
/SKU Release ID of the product. Can be obtained using "Proxy Reg Info" link on the Application Releases section of the App Store page (see above). /SKU=2e9c30bf-e393-42c5-a5dd-e5b72c3b8998
/AppUrl Full intranet application URL. When used, default document is assumed to be in the application root. Ignored if both /AppUrlRoot and /AppUrlRoot parameters are specified. /AppUrl=http://machine:1234/Folder/Index.htm
/AppUrl=http://machine/Folder/
/AppUrl=http://machine:1234/
/AppUrlRoot Specifies application root. Most useful when application root is not the folder where default page is located. Must be used together with /AppUrlDoc parameter. Should not be used together with /AppUrl parameter. /AppUrlRoot=http://machinename/
/AppUrlRoot=http://machinename/Folder/
/AppUrlDoc Specifies application default page location. Most useful when a default page is located in a subfolder relative to application's root. Must be used together with /AppUrlRoot parameter. Should not be used together with /AppUrl parameter. /AppUrlDoc=Subfolder/Default.aspx
/AppUrlDoc=Subfolder1/Subfolder2/

.HVPNA File Format

.HVPNA files contain values for AgentPluginInstallUtility.exe command line parameters required to execute application registration with HttpVPN. .HVPNA file should be created by your application installation to ensure that the application can be registered with HttpVPN outside of the installation process. This is necessary because user may choose to abort HttpVPN application registration sequence launched during the installation process.

.HVPNA file extension is associated with AgentPluginInstallUtility.exe and therefore when a user double-clicks .hvpna file, the process of intranet web application registration with HttpVPN starts. In most cases application installation routines should create .HVPNA file and place a shortcut to the file into the Start menu.

.HVPNA file is a simple text file where every line contains one of the AgentPluginInstallUtility.exe command line parameters, except /AppRegFile (see table above).

Below are examples of valid .HVPNA files.

/SKU=2e9c30bf-e393-42c5-a5dd-e5b72c3b8998
/AppUrl=http://machinename:9874/

/SKU=2e9c30bf-e393-42c5-a5dd-e5b72c3b8998
/AppUrlRoot=http://machinename/
/AppUrlDoc=Subfolder/home.php

If you build an installer using Microsoft Visual Studio, please use this
detailed step-by-step walk-through, explaining in details how to do it.

Next Steps