41
Apache Unomi: an introduction I SnowCamp 2016 1 APACHE UNOMI: AN INTRODUCTION CHRISTOPHE LAPRUN, SENIOR SOFTWARE ENGINEER, JAHIA @METACOSM

SnowCamp 2016 - Apache Unomi Introduction

Embed Size (px)

Citation preview

Page 1: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 1 1

APACHE UNOMI: AN INTRODUCTIONCHRISTOPHE LAPRUN, SENIOR SOFTWARE ENGINEER, JAHIA

@METACOSM

Page 2: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 2

Context, context, context!

MOTIVATION

Page 3: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 3

MORE DATA THAN EVER

BUT CAN YOU USE IT?

Mobile IoTWeb

(Big)Data

Profit?

Page 4: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 4 4

PROFIT?

SHOW ME THE MONEY!

For enterprises, it’s all about making sense of the context

Information is ⎯ coming from lots of different sources ⎯ split in shards, each a facet of the real user

Information systems do not usually play well together

Need to unify information streams and simplify access and analysis to get actionable data

Page 5: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 5 5

THE OTHER SIDE OF THE COIN

HEADS OR TAILS?

The other side of the data equation is, of course, users

User targeting often fails or, on the other end of the spectrum, works too well (creep factor)

What do users want? ⎯ Targeted, appropriate, interesting content

when consented ⎯ Completely anonymity, sometimes

Page 6: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 6

TRUST ISSUES

It takes 20 years to build a reputation and five minutes to ruin it.

- Warren Buffet

Page 7: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 7

This one’s just right!

GOLDILOCKS ZONE

User needsBusiness needs

Page 8: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 8 8

THE IDEA

WHAT IF?

Aggregate user information in a single context-providing server

Provide a single entry point to unify context management both for users and enterprises

Able to import / export data from other systems

Make it open & extensible and standardize it

Provide users with privacy controls

Page 9: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 9 9

INTRODUCING UNOMI

YOU KNOW ME?

A Java implementation of the context server concept

Built on top of proven technologies for scalability and ease of extension

Aimed at being the reference implementation of the upcoming OASIS Context Server standard

Page 10: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016

Unomi

10

UNOMI ARCHITECTUREOVERVIEW

REST API

OSGi Services

Persistence SPI

Apache KarafApache CXF

Elasticsearch

PluginsPluginsPlugins

Page 11: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 11

TARGETED FUNCTIONALITIESA LITTLE FOR EVERYONE

UNOMI

User tracking

Event tracking

Goal tracking, scoring Segmentation Form Input

tracking

Download tracking

Impersonation (personas)

A/B testing

Profile (visitor,contact,leads)

management and exportReporting

Privacy management

Page 12: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 12

ARCHITECTURE DESIGN GOALSFROM LESSONS LEARNED THE HARD WAY

1

2

3

Avoid putting additional load on client nodes

Highly scalable (avoid node cross-talk)

Make it easy for clients to create UIs to define and use collected data

4

5

6

Integrate with existing systems

Capable of driving external systems if needed

Make it easy to extend core functionality via plugins

Page 13: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 13

SCALING ARCHITECTURE

THROWING MORE SERVERS AT THE PROBLEM

Unomi CMS

Issue trackingCRMSocial

Page 14: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 14

INTERACTION WITH UNOMI

RULES

ACTIONS

SEGMENTSEVENTS

CONTEXT

CONDITIONS

PROFILES

TYPICALLY…

UNOMI

REST API

Page 15: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 15

EXAMPLE CONTEXT

digitalData = { "loaded": true, "user": [{ "profiles": [{ "profileInfo": { "profileId": "d6454520-f2b6-40b7-829c-d17214f209d1”, "firstName": "Serge", "lastName": "Huber”, "userName": "Serge Huber", "email": "[email protected]", "gender": "male”, "itemClass": "org.oasis_open.context.server.api.User", "segments": ["alwaysTrue", "maleGender"] } }] }]};

LEVERAGING CUSTOMER EXPERIENCE DIGITAL DATA LAYER 1.0

Page 16: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 16

UNOMI SERVICESSTUFF THAT ACTUALLY DOES STUFF…

PROFILESManages profiles and personas

(loading, updating, saving, deleting, merging, …)

PRIVACYManages privacy (anonymous

browsing, event filtering, profile deletion)

QUERIESPerforms queries against the

stored data (events, profiles, …)

SEGMENTSManages segments (definitions, loading, saving, scoring)

DEFINITIONSManages property types, condition types, actions types, tags and other metadata

CLUSTERINGManages the cluster of context servers

Page 17: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 17

VISITOR PROFILESPROFILING MADE EASY

A profile is created as soon as a visitor arrives on a site

Populated through events, such as page views, CMS login, Social login, mobile action, beacon detected or form submissions

Sessions are tracked for each profile, history of navigation is accessible too.

Page 18: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 18

SEGMENTSI’M A PERSON, NOT A SEGMENT

Designed for easy

GUI creation

Conditions match user

profile properties

Potentially complex

assembly of conditions

Example Profiles younger than 25 and have an income of more than USD 100’000 (young rich segment)

Page 19: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 19 19

EVENTS

I DID WHAT WHEN? REALLY?

Client or server-side events can be sent to Unomi.

Events are processed natively or via plugins, synchronously or asynchronously (e.g. using Apache Mahout)

Page 20: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 20 20

IMPERSONATION (PERSONAS)FOR WHEN YOU WISH YOU WERE SOMEONE ELSE

Persona definitions make it possible to “emulate” a certain type of profile, e.g : US visitor, non-US visitor, search engine bot, …

Predefined personas but you can of course define your own

Allows front-ends to create personalisation UIs to quickly test changes based on persona profiles

Page 21: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 21 21

RULES

ONE SERVER TO RULE THEM ALL!

Conditions evaluate to a boolean that will determine if the actions of the rule are executed or not

Conditions may be complex, using Boolean operators for building sub-conditions

Conditions and actions are either pre-defined or defined as part of a Unomi plugin

WHEN conditions THEN actions

Page 22: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 22

PROFILE MERGINGBECAUSE MERGING PEOPLE IS CREEPY

A single (physical) visitor may come to a web site or web service using different devices or browsers

Page 23: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 23

PROFILE MERGINGBECAUSE MERGING PEOPLE IS CREEPY

Each visit will (initially) generate a separate profile ID

Upon visitor identification (usually after login), the current profile will be merged with any existing profiles with the same identifier

Any tracking cookies will be modified to be associated with the identifier of the merged profile

Recognized visitors will therefore be tracked across devices, as the same profile instead of different ones

Page 24: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 24

PLUGINSROOM TO GROW, IN ALL THE RIGHT SPOTS

Custom conditions to be used in segments or rules

Custom actions to be used in rules

Custom session or profile property definitions

Resource bundles

Predefined rules

Predefined segments

Predefined scoring

PLUGINS MAY INCLUDE Plugins are OSGi bundles that may extend the built-in functionality of the Context Server

Page 25: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 25

PERSISTENCESAVING THOSE PRECIOUS MOMENTS

⎯ Service Provider Interface ⎯ Default implementation : Elasticsearch ⎯ Elasticsearch provides out of the box :

⎯ NoSQL JSON document storage

⎯ Built-in scaling and clustering

⎯ Separate nodes for data storage & query execution

⎯ Powerful query sub-system

⎯ Apache License

Page 26: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 26

REST APIEXPOSING OURSELVES TO THE OUTSIDE, CLEANLY

FUNCTIONALITIES

⎯ Implemented using Apache CXF

⎯ JSON binding to keep things simple

⎯ Exposes most of Unomi’s built-in services

⎯ Protected by Karaf container security

⎯ Will be standardized by OASIS Context Server specification

⎯ Can be used to either built administration UI or interface with third party systems

Page 27: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 27 27

PRIVACY SERVICE

MAYBE, YOU KNOW ME A BIT TOO MUCH…

Server and event discovery

Current visitor profile access

Retrieving and setting list of events that may or may not be collected for current profile

Management of anonymous browsing, including anonymous collection activation or anonymizing of previously collected data

Profile deletion

3rd PARTY UI

CREATION

OPPORTUNITY

Page 28: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 28 28

ALGORITHMS

GAINING INSIGHTS ON COLLECTED DATA

Native support for “algorithms” to process/mine data and extract additional knowledge is being discussed

Would provide more functionality out of the box

If standardized, potential for re-usability between implementation is intriguing

Open source reference implementation should help interoperability

LET THE

COMMUNITY

DISCUSS AND

PROPOSE

Page 29: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 29

ALGORITHMSOUR IDEAS

RECOMMENDATION ENGINEpropose products based on other

users behaviors

SIMILARITY ENGINEassociated users or any items

that are similar

APACHE MAHOUT INTEGRATION

$BIG_DATA_FRAMEWORK INTEGRATION

tools/frameworks to leverage the structured data

present in the Context Server

Page 30: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 30

CONNECTORSEXTENSION POINTS

CUSTOM CONDITIONSmay be used to

perform dynamic data exchanges upon incoming

events

can perform calls to external

services

EXTERNAL SERVICES

may use Unomi’s public URLs or

administration URLs to access REST

services (for querying, reporting,

editing, etc)

EXTERNAL SYSTEMS

may push data into Unomi either

through events

DIRECT ACCESS

to ElasticSearch is also possible

to directly interface with

the persistence system

CUSTOM ACTIONS

Page 31: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 31

A.K.A. CXS

OASIS CONTEXT SERVER STANDARD

Page 32: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 32

OASIS CONTEXT SERVER STANDARDAN OVERVIEW WITH LOTS OF COMPETITORS

Co-chairs

Serge Huber Jahia

Thomas Sigdestad Enonic

Established technical committee in April 2015

Page 33: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 33

OASIS CONTEXT SERVER STANDARDMEMBER COMPANIES

YOU?

Page 34: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 34

OASIS CONTEXT SERVER STANDARDGOOOOAAAAAAALLLLLLSSSSS!

PROVIDE A STANDARD

▪ A context server REST API

▪ An associated domain model

▪ An open source reference

implementation (Apache Unomi)

APPROVED

Make sure that the

standard is based on real

needs of the industry

DESIGNED FOR GREATNESS

Not only CMS-specific, designed

to integrate with as many tools as

possible (CRM, ERP, mobile

applications, …)

Page 35: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 35

OASIS CONTEXT SERVER STANDARDWORK ORGANIZATION AND WORK DONE

https://www.oasis-open.org/committees/cxs/

PLEASE JOIN IF

YOU WANT TO

HELP

Whole TC meets once per month

2 workgroups meet once per week

CURRENT STATUSMEETINGS

⎯ Use case listing & discussions : completion

⎯ Domain model definition : undergoing

⎯ REST API : to be done

⎯ Formal specification : to be done

Page 36: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 36

Open-source to make it your own

APACHE UNOMI

Page 37: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 37

INCUBATORWHO TO BLAME! ☺

https://unomi.incubator.apache.org/

Champion Jean-Baptiste Onofré

Talend

Mentor Bertrand Delacretaz

Adobe

Mentor (Retired) Roman Shaposchnik

Pivotal

Mentor Chris Mattmann

NASA JPL

Page 38: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 38

COMMERCIAL APPLICATIONSCOMPLETELY GRATUITOUS PLUG

Build your own ! It’s the beauty of the Apache

License !

First (known) application Jahia Marketing Factory

Page 39: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 39 39

TAKING SOME RISKS, LIVE!

DEMO JAHIA MARKETING FACTORY + UNOMI

AN EXAMPLE APPLICATION

Page 40: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 40

YOUR TURN

HAVE YOU BEEN READING THESE?

Q & A

Page 41: SnowCamp 2016 - Apache Unomi Introduction

Apache Unomi: an introduction I SnowCamp 2016 41

LEARN MORE

THANK YOU SO MUCH FOR YOUR ATTENTION!

OASIS CXS standard https://www.oasis-open.org/committees/cxs/

Unomi incubator web site http://unomi.incubator.apache.org/

Unomi git repository https://git-wip-us.apache.org/repos/asf?p=incubator-unomi.git

Jahia Marketing Factory https://www.jahia.com/software/for-marketers/marketing-factory