An open source, Java-based analytics workflow manager
The Apereo Learning Analytics Processor application can be considered the manager of an analytics workflow. Typically, this type of workflow is referred to as a pipeline and consists of three distinct phases: input, model execution, and output. The Apereo Learning Analytics Processor supports this type of pipeline construct. Additionally, the Apereo Learning Analytics Processor exposes output from the pipeline via a collection of web service APIs.
Learning Analytic Processor (LAP) is a Java web application built with Spring Boot. LAP manages configuration using Spring Profiles. A complete listing of the supported profiles is available below.
To build and run LAP you will need, at a minimum, the following:
To get started quickly for testing or demo purposes you can run LAP with the default profile. This will start the application using an H2 in-memory datastore.
// Just build the jar file mvn clean package // this produces the test.jar file in the target folder
// Run in place mvn clean package spring-boot:run // this starts the application on port 8080
// Run in place using the jar file // as an alternative to using spring-boot:run // you can build the jar file using mvn clean package // and then run java -jar target/lap.jar // this starts the application on port 8080
Now that you have LAP up and running watch the video below to learn how to exercise it.
On some operating systems we have encountered errors with Kettle accessing shared kettle properties. This error may manifest itself as "org.apereo.lap.services.ProcessingManagerService - Pipeline (sample) FAILED" or errors that complain about connecting to mysql. If you run into this problem follow the instructions below:
// Kettle uses a file $HOME/.kettle/shared.xml. // This is supposed to be automatically created by kettle but // I've run into some environments where this doesn't always happen. // The following should get you running. mkdir $HOME/.kettle/ echo '<?xml version="1.0" encoding="UTF-8"?>\ <sharedobjects>\ <connection>\ <name>LAP_connect</name>\ <server/>\ <type>H2</type>\ <access>Native</access>\ <database>mem:temp-db;MODE=MYSQL;DB_CLOSE_DELAY=-1</database>\ <port>-1</port>\ <username>sa</username>\ <password>Encrypted </password>\ <servername/>\ <data_tablespace/>\ <index_tablespace/>\ <attributes>\ <attribute><code>PORT_NUMBER</code><attribute>-1</attribute></attribute>\ </attributes>\ </connection>\ </sharedobjects> >> $HOME/.kettle/shared.xml
The LAP master branch will always contain the most stable version of the code base. If you are just starting out with LAP we recommend that you start with the master branch and, of course, if you plan to deploy LAP in a pilot or production environment use the master branch.
The LAP development branch contains that latest code changes and any experimental features that have not yet been deemed production ready.
The LAP gh-pages branch contains the HTML and supporting assets for this web page.
The LAP poc branch contains work done in the orginial proof of concept. This branch is maintained for historical purposes. No new development should occur in the poc branch.
LAP, and all of the Apereo LAI components, make heavy use of Spring Profiles. If you are not familiar with Spring Profile we highly recommend brushing up by reading the excellent Spring documentation.
This profile is activated when you do not specify any other active profiles. This will start the application with H2 as the temporary and persistent data stores.
This profile will start the application with H2 as the temporary data store and MongoDB as the persistent data store. You will need to specify the relevant MongoDB properties in your properties file to overide the defaults.
// Example of using the mongo profile // Start with mongo profile for dev purposes mvn -Drun.jvmArguments="-Dspring.profiles.active=mongo" -Dspring.profiles.active=mongo clean package spring-boot:run // Run with mongo profile java -jar -Dspring.profiles.active=mongo lap*.jar // Active from a properties file spring.profiles.active=mongo
This profile will start the application with H2 as the temporary data store and MongoDB as the persistent data store. You will need to specify the relevant MongoDB properties in your properties file to overide the defaults. The difference between this profile and the mongo profile is that each tenant (identified by the organization that the current user belongs to) will use a separate MongoDB database. Unless you're deploying a multi-tenant LAP cluster you probably don't want to use this profile.
// Example of using the mongo profile // Start with mongo profile for dev purposes mvn -Drun.jvmArguments="-Dspring.profiles.active=mongo-multitenant" -Dspring.profiles.active=mongo-multitenant clean package spring-boot:run // Run with mongo profile java -jar -Dspring.profiles.active=mongo-multitenant lap*.jar // Active from a properties file spring.profiles.active=mongo-multitenant
Learning Analytics Processor is released under the terms of the Educational Community License, Version 2.0 (ECL-2.0). ECL-2.0 is a slightly less permissive Apache2 license. More details at http://opensource.org/licenses/ECL-2.0