QBO 3 Installation Guide

Overview

A typical QBO3 includes:
  • At least 1 MSSQL database,
  • At least 1 IIS website, and
  • At least 1 installation of the qbo Queue Service Windows service
Prerequisites:
  • Database: Microsoft SQL Server running SQL 2008 or later
  • Web Server: Microsoft Internet Information Server 7.5 or later
    • must include .NET framework 4.5 or later
    • Powershell 4 recommened
    • WebDeploy 3 or later recommended
  • App Server: Microsoft Windows 2008 or later for installation of the qbo Queue Service
    • same setup as Web Server
For a DEV installation, the SQL, IIS and qbo Queue Service may run on the same server. Production installation should following standard Microsoft guidelines on scalability.

Installation order includes:
  1. Installing a QBO database
  2. Installing the IIS website
    • selection of desired plugins
    • modification of web.config and related configuration files
  3. Installing the qbo Queue Service

Database Installation

Quandis uses a Visual Studio SQL Project (.sqlproj) to manage the QBO database.  The database solution can be found in Quandis source: Trunk > qbo.3 > qbo.DB > qbo.DB.sln.  This solution may be use to publish directly to a SQL server, or to generate a script to update a target SQL server to the current version of the QBO schema. 

As of this post, the qbo.DB solution includes 4 projects:
  • qbo.Standard: this contains the core tables required for all QBO installation
  • qbo.Mortgage: this references qbo.Standard, and includes mortgage industry related tables
  • qbo.Debt: this reference qbo.Standard, and includes debt industry related tables
  • qbo.Credit: this references qbo.Standard, and included credit reporting related tables
Installing qbo.Mortage will include all qbo.Standard components.

To set up a QBO database:
  • Open the qbo.DB solution
  • Right-click on the desired project (Standard, Mortgage, Credit or Debt), and choose Build
  • Right-click on the desired project (Standard, Mortgage, Credit or Debt), and choose Publish
    • follow the publish wizard to connect to your target database
    • enter the locations for the files to be created for the various file groups (see below)
File groups

Large QBO installations can push a SQL server pretty hard. To optimize performance, Quandis has created several FileGroups to help manage SQL Server's performance. In a PROD environment, the files for each file group should be on a different physical drive.  For a DEV environment, this is far less important.  However, the QBO schema will create the file groups, regardless of environment. The SQL projects in the qbo.DB solution will prompt you for a physical location for the files in each of the file groups that the schema will create. 
  • For a DEV installation, you are welcome to place all the files on the same drive.
  • For a PROD installation, strongly consider specifying a separate physical drive for each file group

Web Server Installation

Quandis' application and web tiers are built in C# and ASP.NET project files. The core solution can be found in Quandis source: Trunk > qbo.3 > qbo.Core > qbo.Core.sln. The web projects in this solution may be used to publish directly to an IIS server. Quandis recommends publishing using Web Deploy, either directly or via a Web Package.

As of this post, the qbo.Core solution is broken into the following main folders:
  • Application Tier: C# project file comprising the core QBO functionality
  • Plugins: ASP.NET web projects comprising various plugins that wrap third-party software with QBO interfaces
  • Themes: ASP.NET web projects comprising client or QBO-based product specific UI components
  • Web Tier: ASP.NET web projects comprising the presentation tier (XSLTs) and web handlers for core QBO functionality
To set up a QBO web server:
  • Open the qbo.Core solution
  • Expand the Web Tier folder
    • For each Web Tier project, right-click on the project and choose Publish
    • follow the publish wizard to connect to your target web server
  • Expand to the Plugins folder
    • For each desired plugin, right-click on the project and choose Publish
    • follow the publish wizard to connect to your target web server
Using Packages or Powershell 

Unlike the data tier, there are a lot of  web tier and plugin projects comprising QBO. Developers will quickly grow tired of publishing many projects to a target web server, particularly if you have multiple web servers to target.

In such a case, consider using Powershell to build a Web Package (.zip file), and installing the package using IIS.

Configuration File Modifications

QBO contains several configuration files that will need to be created or updated to make a QBO installation work correctly. The web.config file will be found in the root of the web application, but all other configuration files will be found in the Config folder just under the root.

By default, the QBO web projects do not including several required .config files as content. This is a pattern we adopted to allow developers to publish without worrying about overwriting a custom configuration. 

Web.config

For an initial installation, copy the web.config found in qbo.Core > Web tier > qbo.ApplicationWeb to your web application root.  Settings to consider tweaking:
  • qbo.Application.Properties.Settings / HttpsRequired: set this to False if you do NOT have SSL installed on your website
  • qbo.Application.Properties.Settings / XsltCacheDuration: set this to 0 if you are in 'development' mode, making frequent XSLT changes
  • loggingConfiguration / listeners: modify this to use the Enterprise Library or custom logging sinks you prefer
ConnectionStrings.config

For an initial installation, copy the ConnectionStrings.config found in qbo.Core > Web tier > qbo.ApplicationWeb > Config to your web application's Config folder.

Typical setup include two entries:
  • qbo.Default: the connection string used by the application
  • qbo.AdHoc: an optional connection string if you wish to enable ad-hoc querys via Report.ashx/AdHoc
Credential.config

This file contains the "system" credentials used to communication between the QBO application tier an resources that required credentials. Examples include:
  • credentials to an SMTP server for outbound email processing
  • credentials to a UNC share on a corporate SAN
  • credentials to an sFTP site used for client data file exchanged 
A sample can be found in qbo.Core > Web Tier > qbo.ApplicationWeb > Config.

FileObject.config

This file determine where document images are saved. This must always be customized to your site. See a sample file in qbo.Core > Web Tier > qbo.AttachmentWeb > Config.

Typically, you should include:
  • An 'Internet' file object for reading files over HTTP
  • A 'Database' file object if you wish to copy data files to your data server for access by the SQL engine or SSIS
  • A UNCFile-based file object to support scratchpad space for user uploads
  • A 'permanent' repository such as Amazon S3, Google Drive, or your corporate SAN for user created images
MailOutbound.config

This file determine where outbound emails are sent. This must always be customized to your site. See a sample file in qbo.Core > Web Tier > qbo.MessageWeb > Config.

qbo Queue Service Installation

The qbo Queue Service is a Windows services that handles all asynchronous processing for QBO. The MSI for this service can be found in Trunk > qbo.3 > Installation.  
  • For DEV installations, you can simply install this service on the web server. 
  • For PROD installations, clone the web server machine, install the qbo Queue Service 
    • the service will read the same configuration files you set up for IIS
    • you may optionally top the Word Wide Web Publishing Service
The qbo.QueueService.exe.config file must be modified to point to the web.config file that you configured for the web site. 

Plugins

Plugins are generally optional components of QBO.  Not every installation needs to read and write files from Amazon, generate PDFs from WebSupergoo, or mail merge documents with Aspose Words. Some plugins require third party software installation or configuration. Examples include:
  • qbo.Import.Excel*: plugins read or write to Excel, using the Microsoft Office ACE Drivers
  • qbo.Attachment.ABCPDF: plugin requires installation of WebSuperGoo, and setting of the license key via their GUI
  • qbo.Attachment.Aspose: plugin requires licensing of Aspose.Words for NET
  • qbo.PaymentMethod.AuthorizeNet: plugin enables credit card processing via Authorize.net; custom credentials are required
  • qbo.Attachment.Delivery: plugin generates USPS certified mailing number; requires configuration of a USPS-issued mailer identification number
  • qbo.Attachment.FNC: plugin reads and write ENV files via FNC; requires configuration of custom credentials
  • qbo.Attachment.Google: generates custom maps via Google Maps API; custom credentials are required
Plugins are constantly being created and updated by the Quandis team. If you have questions about the installation or configuration of a plugin, please contact support@quandis.com.

Verifying Installation

A given installation may be verified from Design > Specifications, Application > Configuration.  This spec will fetch a list of all installed modules, and instantiate each, do a search against the db, and report any errors encountered.  It is intended to catch:
  • Consistency between the app tier and data tier (expected tables and column structures), and
  • Verify all plugins referenced in each module's configuration file can be instantiated
Note that not all errors reported by this spec may pose a problem for you installation.  For instance, if you have configured the Entity view to ignore some modules, the Summary check for the module will fail.

Comments