How To Setup Web Host
This document describes how Collect! can be set up in your office to work as a simple web server - communicating over the
Internet with your operators or your clients anywhere in the world - while you maintain control over what they see and
what they do. Web Host is an ideal solution for Internet accessibility and for modern intranet works.
Streamline data entry and retrieval with Web Host's ultimate flexibility. Create custom easy-to-understand data entry forms for
your staff to use from their Internet browsers. Create elegant reports to display account information to your clients. Web Host
functionality is supported by sophisticated, powerful back-end processing through Collect!
By default, Collect! Web Host has SSL functionality enabled to provide encryption services for secure mode. All that
is required is that you start the Web Host with the /W1ss argument in the Web Host startup icon. Collect! will use
Port 443 for HTTPS by default, or you can set a different port using the /y argument.
If you would like to use Apache as your front end web server, then Collect! can be setup to do so. It allows you to
run several instances of Collect! on an Apache Load Balancer so if one instance fails, Apache should roll over to the
next instance of Collect!. Please refer to the Help topic How to Setup Web Host with Apache for more information.
Comtech is not responsible for the security of your data. Internet security is complex and rapidly changing and requires
a dedicated security specialist.
Setup Background Requirements
- Basic concepts of HTML
- Basic concepts of Networks
- Firewall/Security for Internet
System Requirements
- Reliable TCP/IP network with appropriate name resolution
- The latest version of your preferred web browser
- A third party SSL certificate (Symantic, Geotrust, etc.)
Operation
Two distinct entities are involved with the operation of the system:
- The server side is a Collect! process.
- The client side is a web browser.
Server:
Collect!'s HTTP server listens on the port number specified in the startup options (see below). The default is port 80 for HTTP
servers. By using port 80, you make it possible to just type the server's network name into the browser's navigation pane and
you end up on the server. If you already have processes running on port 80, Collect! can be configured to run on another port.
For secure mode, Collect! uses port 443 by default, but it can be configured.
For the encryption method, Collect! uses SSL 2 and SSL 3 by default. As these have been deprecated, we recommend starting the
Web Host with TLS 1.2 encryption. See below for details.
If you are using a third party SSL utility, use the arguments, /S80 /W1s for Web Host secure mode.
Client:
The Collect! server receives a POST commands from a web browser form submit that either call an import map to import data or
a write back report to edit data. For the import maps, we parse the form data and save it to a *.csv file in the UserID folder.
Then we call the import map specified in the posted data from the web page. This lets us interpret the fields in the *.csv file
linearly in a customized import map. The hidden field named 'importmap' is skipped and then the rest of the fields are saved to
the *.csv file.
HTML Folder Contents
At the top level you will see four folders:
db
db_files
global
guest
user
The DB folder contains the SQL database files for the reports and imports that the Collect! Web Host uses in its operation.
Please do not alter these files directly or you may get undesirable results. If you wish to customize web host,
please refer to the Help topic How to Customize Web Host for more information.
The DB_FILES folder contains the RPT and XML file for the reports and imports for your version of webhost. Web Host is shipped
in this manner as different versions of Collect! may use different versions of the database, so the RAW files are used to install
the reports and imports.
The GLOBAL folder contains images, text and script files that are used by all levels and pages displayed in the browser.
The GUEST folder contains the necessary files for any user who happens to arrive at your IP address. The index.html is
displayed with and associated images from the GLOBAL folder to anyone who accesses your server address. This is a great place
for marketing new prospects. This page can also allow a user to sign on. You can modify this page as you wish to produce
results that suit you.
The USER folder contains all the pages that interact with your operators. Related script, style and images files are read from
the GLOBAL folder when the pages load.
Under the USER folder, you will see numbered folders. These correspond to the User Levels in Collect! assigned to your
operators and clients. Please refer to the Help topic How To Add A User Level To Web Host for more information.
Enabling The Web Host Process
The Web Host does not run as a server, rather it runs as a program on your server or computer that you designate as your web
server. Enabling the Web Host is as simple as starting Collect! with a few startup options in a shortcut or via the Windows
Task Scheduler. Here is an example of a default Web Host shortcut: cv12.exe /W1ss6 /S80 /y443.
The startup options are not case sensitive.
A /W1 argument makes Collect! start as an HTTP server without encryption. The /W1ss6 argument
enables Web Host internal SSL functionality using TLS 1.2 with 256 bit encryption. To specify other option, please refer to the
Help topic Command Line Startup Options for more information.
The /W1s argument enables Web Host secure mode when using a third party SSL utility. The default is SSL 2.3. To
specify other option, please refer to the Help topic Command Line Startup Options for more information.
The /Snn argument tells Collect! which port to listen on for the unencrypted connection where
nn is the port number. So /S80 causes Collect! to listen on Port 80.
The /ynn argument tells Collect! which port to listen on for the encrypted connection where
nn is the port number. So /y443 causes Collect! to listen on Port 443.
By default, Collect! Web Host has SSL functionality enabled to provide encryption services for secure mode. The
necessary Keys and Certs are created automatically when you first open Web Host. The SSL certificate is self-signed.
Please refer to the Help topic SSL Keys and Certs on how to create SSL certificates.
Additional arguments cause the web server to automatically sign into Collect! Use the argument /i{User ID}
for the User ID. You must use a valid ID that is already set up in your Operators. For example, /iWEB.
Use /p{Password} for the User Password. This must be the valid password for the User ID that is set up
in your Operators. For example, /pWEB.
Once the shortcut is configured, you can open it, sign into Collect! and you will see a web console waiting for a browser to
connect.
Collect! Web Host using SSL2.3 Encryption
Examples:
1. Secure mode with the use of the /W1ss /y443 arguments:
Collect! Web Host with Collect!'s internal SSL handling enabled
2. Secure mode with the use of the /W1s argument:
Collect! Web Host - Secure Mode - when using a third party SSL utility
3. Web host mode, not secure:
Collect! Web Host - Not Secure - Not recommended
Web Host Processes - Reports And Imports
The Web Host process uses reports and imports, two basic Collect! functions. Collect!'s Report Writer is used in combination
with HTML to create pages for displaying in your browser. Database records are easily and seamlessly edited and added to your
database from the Web Host using Collect!'s import routines.
The sample Web Host may be used as is, or its interface and functions can be customized to suit your needs. This requires
understanding of HTML, Javascript, CSS style sheets, and Collect!'s Report Writer codes, and familiarity with creating import
maps in Collect!
The Web Host acts as a submission FORM process. It uses the HTML form tag to submit information to Collect!
which Collect! then acts upon.
There are two types of form actions used, report and import.
Here is a report example:
<form method="post" name="formname" action="report">
<input type="hidden" name="reportname" value="Form_ Debtor">
<input type="hidden" name="filename" value="Form_Debtor.html">
<input type="button" name="submitbutton" value="Submit" onClick="submit()">
</form>
The action property tells Collect! to handle the form request as a report. The reportname
input tag tells Collect! to run the report named in the value property. The filename input
tag is in the code, but has been deprecated.
Here is an import example:
<form method="post" name="importname" action="import">
<input type="hidden" name="importmap" value="Add_Debtor">
<input type="button" name="submitbutton" value="Submit" onClick="submit()">
</form>
The action property tells Collect! to handle the form request as an import. The importmap
input tag tells Collect! to use the import map named in thevalue property.
Report Forms
The report forms submit data to Collect! which in turn calls a report to be run to the browser. Report forms can submit an
empty form to call a report or they may contain input tags to transfer data to the next report. The next report would need to
contain variables to store the transferred data. When transferring this data, the input tag name must be the same name as the
variable used in the next report.
Input tags are always of type string by default, but you can specify the variable type like name="vardate!".
Example of transferring data through reports:
Report1 Snippet
<form method="post" name="formname" action="report">
<input type="hidden" name="reportname" value="TestReport">
<input type="hidden" name="filename" value="testreport.html">
<input type="hidden" name="vardocument" value="test">
<input type="button" name="submitbutton" value="Submit" onClick="submit()">
</form>
This code presents the Web Host user with an HTML page that has a Submit button.
TestReport Snippet
If you have an HTML report in the Web Host Report Definitions named TestReport and it contains this line of code,
@vardocument
then, when the Submit button is pressed on the Report1 page, the HTML page, testreport.html, would be returned
to the user, with the string "test" displayed in the browser.
Transferring data through reports can be very useful. They can be used in report writer loops for date ranges, file number
ranges, and other data. They can be used in your HTML tags or scripting.
When you use variables in reports, you can also identify database address of a specific record. Each database record has a
dbaddress attribute, for example, @de.dbaddress. This address is stored as a 21 character length address When used with the
@SET command, for example, @SETde.dbaddress, Collect! will jump to that address location. This is a more
efficient way of finding the record, than using a loop with a MAX = 1 as in
@de no total where (@de.fi = @varaddress) max = 1
Example of using @SETde.dbaddress through report forms:
Report2 Snippet
<form method="post" name="formname" action="report">
<input type="hidden" name="reportname" value="TestReport2">
<input type="hidden" name="filename" value="testreport2.html">
<input type="hidden" name="varaddress" value="@de.dbaddress<">
<input type="button" name="submitbutton" value="Submit" onClick="submit()">
</form>
TestReport2 Snippet
//this should always be used at the top of the report
@SETde.dbaddress = @varaddress<
Import Forms
The import forms submit data to Collect! to be imported into the database. The process submits the form which Collect! then
parses to create a *.csv file. This *.csv file is then imported by Collect! These *.csv files are stored in the operator ID
folder, for example, demodb\html\user\98\CL1.
Each input tag used in an import form must be mapped to in the import map. They must also be mapped to in order. The only input
tag excluded is the importmap input tag.
Example of Client Add Debtor
// This code snippet was modified from the Form_Debtor_New
// report in Collect!'s Web Host reports
Report3 Snippet
<form method="post" name="importname" action="import">
<input type="hidden" name="importmap" value="Client Add Debtor">
<input type="text" name="clientaccountid" size="20" maxlength="20">
<input type="text" name="companylastname" size="40" maxlength="40">
<input type="text" name="firstname" size="15" maxlength="20">
<input type="text" name="contactname" size="40" maxlength="40">
<input type="text" name="address" size="31" maxlength="31">
<input type="button" name="submitbutton" value="Submit" onClick="submit()">
</form>
The Client Add Debtor import map maps each one of the above input tags in the same order as the report snippet.
Client Add Debtor Import Map
If you find that data is not being imported correctly, always view the *.csv file first.
If the *.csv file does not match your import map, then there is something wrong with the input tags.
If the *.csv file is correct, then look over your import map.
Web Host Test Mode
When Collect! is started in Web Host mode, menus are disabled. They can be re-enabled by signing in as User Level 99. As a
command line argument, the letter 't' is also available if you want to start the Web Host in "test mode" based on the current
user level rights. For example, /wt1s or /wt1ss will start up Web Host in test mode with all menus enabled.
W3 Mode
Real time updates to the system are possible through Web Host using the /W3 startup option. This enables predictive dialer
users to return results of call campaigns to Collect! using XML. Normal system password authentication is bypassed and data is
imported directly into the system. This may be used with Trusted Hosts available through the System menu, Network and
Environment option. Please refer to the Help topic How to Use the Web Host XML Data Pump for more information.
Example:
/S80 /W3 /y443
Web Host Packet Logging
This argument, /whl, is used for troubleshooting transmission of Web Host data. The /whl
command will also prevent the deletion of the temporary CSV files that Collect! uses for XML Data Pump.
Example:
C:\Collect\cv12.exe /S80 /W3 /y443 /whl
Web Host Packet Logging Enabled
This will generate a text file in your Collect\bin folder, i.e. "webhostpacketlog.txt." This is for advanced developer
troubleshooting. This file can be used to reproduce HTTP headers and payload content, for instance in XML Data Pump
troubleshooting.
This will also allow you to log SSL encrypted sessions too, since Collect! writes to these files after the decryption
phase.
Timed Shut Down
If you wish to log out of the Web Host automatically at a given time, you can use the command line argument /T in the Collect!
shortcut you use to start the Web Host.
Example:
C:\Collect\cv12.exe /S80 /W1ss /y443 /T1:30
Shut down Collect! Web Host at 1:30 AM (Uses 24 hour clock)
The Web Host ignores any settings set in Database Preferences for Auto Log Out After and will not shut down automatically
unless you use /T in your shortcut as shown above.
Trusted Hosts
Web Host access may be limited only to IP addresses you list in Trusted Hosts. When this feature is enabled, no other IP
addresses will be allowed to access Web Host screens. Please see the Help topic, Trusted Hosts, for more information.
Web Host Preferences
Additional Web Host related settings may be set at the global level in the Database Preferences window.
Maximum Web Host Users sets the number of active users that Web Host will allow during any given session.
Web Host Session Mem KB sets the maximum size of data packets Web Host will send and receive.
Please refer to Database Preferences for details about these settings.
HTML Folder Hierarchy
HTML folders are organized under the database folder in sub-folders, one per user level, {database}\html\users\level\userid. The
user level subfolder contains personal folders for each web user. Collect! ships with the version of web host that was current
at the time your version of Collect! was released. As you can customize your web host by modifying the reports or the files in
these directories, Collect! updates do not update web host to the latest version. If you wish to update web host, please refer
to the Help topic How to Update Web Host for more information.
Requests for html pages by authorized users are processed as follows:
Collect! Web Host checks the user's personal folder.
If the file exists there, it is returned.
If the file is not found in the user's personal folder, Collect! Web Host checks the user level's template folder and returns
the file if found there.
If the file is not in the user level template folder, then the master template folder is checked and the file is returned from
there.
While this may seem to be an unusual way of dealing with web page requests, this scheme allows you to fully customize each
user's web experience, yet easily maintain a set of general web pages that apply to groups of users.
Firewalls/Routers
Please ensure that ports 80 and 443 (or just port 443 if you want to force encrypted connections) are open on your firewalls
and pointing to the applicable web server on your network.
Custom Reports And Imports
Custom routines can be designed by Comtech to satisfy your unique business needs for data entry and retrieval. All operations
can be performed through Collect! using the flexibility of Web Host, and the reporting and importing functionality inherent in
Collect! There is no need for third party utilities or programs.
Do not have Collect!'s text editor window open when Collect! is acting as a web server. This will cause any reports
that need to run in the background due to remote user requests to fail. If no one is accessing Web Host via browser
while you are editing the Web Host reports, there is no problem.
Mime Type Support
Mime types relate to the files we send to client browsers and how we send those files. Each mime type can have several different
extensions, and may want to be transferred in ASCII or binary modes.
The mimetypes.txt in the HTML folder lists the mime types Web Host supports. This file is read by the Web Host
and used to resolve file types.
Setting Up Collect! Web Host Users
To set up an operator to have access to the Web Host via the browser, each web operator must have 'Allow Browser Signon'
switched ON. Click "System\Rights\Operators" then click on the Operator you wish to set up for Web Host OR click the New
button to create a fresh login. In the Security Tab of the Operator screen, the "Allow browser signon" software switch
is located in the middle of window, to the left of Group ID.
Please refer to How To Add A User To Web Host for additional information.
If you are creating or testing anything that could affect your live production environment, we recommend
experimenting in your demodb first, before taking your new process or scenario live to your masterdb.
Logging In Via The Browser
With your Web Host running, open your browser. You would type into the Address bar, the IP address or UNC path of the computer
that has the Collect! Web Host running.
If this is on the same machine that you are currently using, you can use 'localhost' for the path. Login with each
UserID to view the different interfaces. When a User logs in for the first time, Collect! Web Host creates a folder
for that UserID. For example, Collect\masterdb\html\users\98\CL1)
User Authentication
When a valid user signs into Web Host, Web Host holds on to their login information. When the user logs out of Web Host, the
information is cleared. If instead, the user simply closes the web browser, when they log back in they will be prompted for
username and password twice, even though they were entered correctly. This is because Web Host is verifying the stored login
information with the new login request.
Web Host Licensing
This section explains how Collect!'s licensing scheme works with Web Host. Before being able to actively utilize Web Host, you
need to assess how many licensed seats you have total versus how many are being used during normal course business. If you do
not have any spare seats unused on a daily basis, you will need to increase your licensed seats with us before you can have
your clients or off-site staff start using Web Host during business hours.
How many extra seats you will need to purchase will depend on how many concurrent users you anticipate logging in through
Web Host during your business day.
The Web Server, which must be up and running to allow access to to your system, will use up 1 seat for itself, always.
For small to mid-size sites whose need for Web Host user access may be needed but limited, there is the option of the license
seat to user type ratio we offer to minimize the expense of what you need to purchase up front. In this scenario, there is a
2:1 ratio of Web Host:Premise logins in addition to the 1 licensed seat needed for the Web Host Server. Meaning, for every
spare licensed seat you have, you can get in 2 Web Host users.
For example, let's say you have a total of 10 seats on your license, with 7 users actively signed into Collect! in your office
at any given time. This leaves you with 3 spare seats:
- Web Host Server uses 1 licensed seat.
- The remaining 2 spare seats can be used by Web Host as 4 actual web host connections
Please contact Administration at 250-391-0466 for pricing and have the information available how many extra users via Web Host
you anticipate needing concurrent access so that the correct number of licensed seats may be offered to you.
If you are a larger site that offers the majority of your clients login access to your system OR simply have more Web
Host logins operational need than is economically served by the seat ratio option, then the Unlimited Client Access
module is your most cost-effective solution. This module only applies to Clients, not regular or legal operators.
Unrestricted Client Access
This optional module enables you to have unrestricted client logins to your Web Host and only requires the 1 spare licensed
seat to operate the Web Host Server.
There is no limit to the number of client Web Host logins which may access concurrently with this extension module in place.
Call Administration at 250-391-0466 option 3 for details and pricing.
Web Host Attachments
Attachments may be viewed in the Web Host when you are viewing account information. If you have attached a file to the
attachment, the user can open the file, provided they have the appropriate program for viewing the file type.
There are a few steps to take care so that this is possible.
1. Make sure mimetypes.txt is present in the HTML folder. This file is read by Collect! Web Host and used to
resolve file types.
2. Attached files must be located in the GLOBAL folder that the web host application is running from.
If you are running web host from a separate web server, you will either need to shortcut Collect! to your file server,
or use a sync process to update the web server's client install with the attachments.
Summary
A fully functional Web Host is installed when you install Collect! With a few simple command line arguments, Collect! starts in
server mode and Web Host is ready to accept requests from the Internet. If you need custom data entry and retrieval forms, this
requires modifications to web reports and import maps. Web reports are easily modified by someone experienced in HTML. Web import
maps can be modified by anyone familiar with the import/export module in Collect! From your most basic to your most complex
Internet data access needs, Web Host is the best and simplest solution available on the market today.
|
Was this page helpful? Do you have any comments on this document? Can we make it better? If so how may we improve this page.
Please click this link to send us your comments: helpinfo@collect.org