Setup and Installation

Engine has three required components: a database to store Engine application data, a filesystem to store courses, and an application server to serve these courses. Detailed instruction on configuring these components follows. (Note: instructions about the filesystem are included in the section about configuration settings.)

Database Setup

Requirements

Engine generally supports a given platform as long as the vendor offers public support for that platform. As of October 2015, Engine supports the following DBMSes:

  • SQL Server 2008 or higher
  • Oracle 11g2 or higher
  • MySQL 5.5 or higher
  • PostgreSQL 9.1 or higher

Database Connectors

For legal reasons, we are not generally allowed to redistribute the database connectors for most platforms. On .NET, we are able to include the connectors for SQL Server, Oracle, and PostgreSQL. If you are running Java or .NET with MySQL, you will need to download the database connector for your platform and include it in the Engine application's bin folder/classpath.

Preliminary Considerations

As discussed in the Tenancy Overview, you will need to decide whether you will separate Engine's system and tenant tables. To summarize, you will need to separate the tenant and system tables if you ever plan on sharding Engine's tenant tables or otherwise separating different tenants into different databases. You will also need to decide whether you are keeping Engine's tables in the same database as your application's other tables, or if you are using a separate database. Before you use the installation tool, you will need to create any new databases, users, or tablespaces required for your setup.

Installation Tool

First, you will need to use your command line to navigate to the proper directory. .NET customers should navigate to the ScormEngineInterface/bin folder of the Engine distribution. Java customers should navigate to the Installer folder of the Engine distribution.

Second, you will need to copy any database connectors required by your installation. For .NET customers, this applies only to MySQL users; copy the MySQL connector into your current directory. For Java customers, copy your JDBC connector into the lib folder of your directory.

Third, you will need to actually run the command. The command consists of four parts:

baseCommand persistenceEngine connectionString schemaPrefix

  • baseCommand depends on your platform.
    • For .NET, this is simply EngineInstall.exe.
    • For Java, this is java -Dlogback.configurationFile=logback.xml -cp "lib/*" RusticiSoftware.ScormContentPlayer.Logic.Upgrade.ConsoleApp
  • The first argument, persistenceEngine, should be your DBMS type (either mysql, oracle, postgresql, or sqlserver). It should have the same value as the DataPersistenceEngine setting in your configuration file.
  • The second argument, connectionString, should be your connection string. The provided connection string must have permission to create and alter tables. Be careful to quote the connection string so that none of its characters (or whitespace) are interpreted as special control characters by your shell.
    • For Java customers: The installer utility does not run in application container, so you cannot reference JNDI connection definitions. You must define complete JDBC connection urls, as would be found in your server's configuration file. The connection string must also be followed by a pipe (|) and your JDBC class name.
    • For example, a valid connection string might be: jdbc:mysql://myHostName/myDbName?user=myUserName&password=mypassword|com.mysql.jdbc.Driver
  • The last argument, schemaPrefix, should be the schema prefix you use to specify tables. This should also be the same as the schema prefix specified by your Engine configuration file, and it should end in a period. If you do not use a schema prefix, this argument can be omitted.

Customers who wish to specify different system and tenant databases will need to use an XML configuration file. An EngineInstall.xml.template file will be given with your installation; fill it out and save a copy (without the .template extension) in the folder where you are running the tool. Then run the tool using basecommand EngineInstall.xml -install

Server Setup

Every customer application environment into which Engine is deployed is a snowflake. We don't pretend to be server configuration experts for every possible scenario, as our primary goal is to ensure that Engine can run comfortably according to your administrative preferences and expertise.

That said, we can typically ensure that Engine can be stood up in a given supported environment. The basics are covered below.

.NET/IIS

Engine for .NET runs as a web application. It requires .NET Framework 4.5. Engine ships by default as a binary distribution with an assembly intended to be the basis of a .NET web application.

You can drop the entire ScormEngineInterface folder onto your application server, point an IIS application to it, and try hitting an ASP.NET page (like console; see below).

You might want to map a content folder for use with Engine, depending on how you intend to store and serve content.

Java

Engine for Java needs a Java application container to run. It requires Java 7. Cloud, our hosted training delivery system, runs on Tomcat. Most of our development team uses Tomcat for testing, too. So we'll cover the basics of setting up Engine for Tomcat in this manual.

We generally support Engine's use with other Java application containers, but configuring Engine for use with all Java application containers is outside the scope of this document.

We ship Engine as a WAR file. This can be dropped in Tomcat's webapps directory.

As mentioned earlier, your SCORMEngineSettings.properties file should be somewhere in the web application classpath.

We also ship Engine with a context.xml template that you can use as a reference for configuring JDBC.

We specifically recommend that you do not use your Java application container to serve content through Engine. Instead, prefer a traditional web server. There are a variety of ways to map your web server so that the web paths referenced by Engine are served by a web server rather than the app server serving Engine.

results matching ""

    No results matching ""