Apache Unomi in a few words

Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing and re-use in very different applications.

Basically the server tracks users using different mechanisms (by default cookies), builds a progressively populated profile and associates events that are performed by a user with his profile. Events may range from a click on a page, to a file being downloaded, a native mobile application button being clicked, or anything that can be sent to the server.

The server has a built-in rule system that makes it possible to perform any action when an event is collected for a profile. It also has the notion of user segments, making it possible to classify user profiles into dynamic sub-groups, notably to build personalized experiences for specific segments.

As Apache Unomi is built as an OSGi application running inside Apache Karaf, it is extremely extensible and built to be scalable. For example it is possible to plugin new conditions, actions, or any other service that may be needed such as beacon tracking or push notifications.

Apache Unomi is also the reference implementation of the upcoming OASIS Context Server (CXS) standard to help standardize personalization of online experience while promoting ethical web experience management and increased user privacy controls.

What is unique about Apache Unomi ?

One of the most unique features of this server is its privacy management features. Using the privacy REST API, it is possible for integrators to build user facing UIs that let them manage their profile, and control how they are being tracked, what data has been collected and even anonymize previously collected data or future data ! Finally there is even the possibility for end-users to delete their profile information completely.

It is becoming more and more important to address privacy issues correctly, and it is even becoming more and more of a legal issue since a lot of legislation is now appearing in many countries to make sure that user’s right to privacy is respected.

Of course these possibilities have no default UI inside of Apache Unomi so it is left up to the developers to expose them (or not).

5 Minutes Quick start !

  1. Install JDK 8 (see http://www.oracle.com/technetwork/java/javase/downloads/index.html and make sure you set the JAVA_HOME variable https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/
  2. Download ElasticSearch here : https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-3 (please make sure you use the proper version : 5.6.3 for Unomi >= 1.3 and 5.1.2 for Unomi <= 1.2)
  3. Uncompress it and change the config/elasticsearch.yml to include the following config : cluster.name: contextElasticSearch
  4. Launch ElasticSearch using : bin/elasticsearch
  5. Download Apache Unomi here : http://unomi.incubator.apache.org/download.html
  6. Start it using : ./bin/karaf
  7. Start the Apache Unomi packages using unomi:start in the Apache Karaf Shell
  8. Wait for startup to complete
  9. Try accessing https://localhost:9443/cxs/cluster with username/password: karaf/karaf . You might get a certificate warning in your browser, just accept it despite the warning it is safe.
  10. Request your first context by simply accessing : http://localhost:8181/context.js?sessionId=1234
  11. If something goes wrong, you should check the logs in ./data/log/karaf.log. If you get errors on ElasticSearch, make sure you are using the proper version.