SlideShare a Scribd company logo
1 of 43
Download to read offline
APACHE UNOMI IN-DEPTH I 2nd October 20151
APACHE UNOMI IN-DEPTH
SERGE HUBER, CTO & Co-founder, shuber@jahia.com
APACHE UNOMI IN-DEPTH I 2nd October 20152
HISTORY
NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
APACHE UNOMI IN-DEPTH I 2nd October 20153
HISTORY
NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
APACHE UNOMI IN-DEPTH I 2nd October 20154
HISTORY
NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
APACHE UNOMI IN-DEPTH I 2nd October 20155
HISTORY
NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
APACHE UNOMI IN-DEPTH I 2nd October 20156
HISTORY
NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
APACHE UNOMI IN-DEPTH I 2nd October 20157
INTRODUCING UNOMI
YOU KNOW ME ?
WHAT IS
UNOMI?
APACHE UNOMI IN-DEPTH I 2nd October 20158
TARGETED FUNCTIONALITIES
MARKETING TO MARKETERS
UNOMI
User tracking
Event tracking
Goal tracking, scoring Segmentation Form
Input
tracking
Download
tracking
Impersonification
(personas)
A/B testing
Profile
(visitor,contact,leads)
management and export
Reporting
Privacy
management
APACHE UNOMI IN-DEPTH I 2nd October 20159
ARCHITECTURE DESIGN GOALS
FROM LESSONS LEARNED THE HARD WAY
1
2
3
Avoid putting additional
load on the WCMnodes
Highly scalable
(avoiding node cross-talk)
Make it easy for users
to define and use
marketing segments
4
5
6
Integration with existing
analytics
Integration with multiple
systems including mobile apps,
not just WCM
Highly pluggable architecture,
making it easy to extend and
build differentsolutions based
on a common core
APACHE UNOMI IN-DEPTH I 2nd October 201510
SCALING ARCHITECTURE
THROWING MORE SERVERS AT THE PROBLEM
CONTEXT
SERVER
CMS
Issue
trackingCRMSocial
APACHE UNOMI IN-DEPTH I 2nd October 201511
INPUT/OUTPUT
RULES
ACTIONS
Protocols
HTTP REST + JSON
SEGMENTSEVENTS
CONTEXT
CONDITIONS
PROFILES
MUST REFRAIN… NO JOKES ON I/O
CONTEXT SERVER
APACHE UNOMI IN-DEPTH I 2nd October 201512
REQUEST FLOW
HEY LOOKI HAVE ARROWS
Load HTML page
Load HTML +JS
to connectContextServer
Load context.js
Context for currentrequest
(Optional)Load contentbased
on context
(Optional)Send event such as login / hover
BROWSER CMS CONTEXT SERVER
JS callbacks
APACHE UNOMI IN-DEPTH I 2nd October 201513
CONTEXT EXAMPLE
digitalData = {
"loaded": true,
"user": [{
"profiles": [{
"profileInfo": {
"profileId": "d6454520-f2b6-40b7-829c-d17214f209d1”,
"firstName": "Serge",
"lastName": "Huber”,
"userName": "Serge Huber",
"email": "bhillou@yahoo.com",
"gender": "male”,
"itemClass": "org.oasis_open.context.server.api.User",
"segments": ["alwaysTrue", "maleGender"]
}
}]
}]};
FOR THE JSON ADDICTS LIKE ME
APACHE UNOMI IN-DEPTH I 2nd October 201514
UNOMI ARCHITECTURE
LOTS OF BOXES
APACHEKARAF
PERSISTENCE IMPLEMENTATION(ELASTICSEARCH, …)
PERSISTENCE SPI(SERVICE PROVIDER INTERFACE)
APACHE CXF
REST API
OSGISERVICES
APACHE UNOMI IN-DEPTH I 2nd October 201515
UNOMI SERVICES
STUFF THAT ACTUALLY DOES STUFF
PROFILES
Managesprofilesandpersonas
(loading,updating,saving,
deleting,merging, …)
PRIVACY
Managesprivacy (anonymous
browsing,event filtering,profile
deletion)
QUERIES
Performs queries againstthe
stored data(events,profiles,…)
SEGMENTS
Managessegments(definitions,
loading,saving,scoring)
DEFINITIONS
Managespropertytypes,
conditiontypes,actionstypes,
tags andother metadata
CLUSTERING
Managesthe clusterof
context servers
APACHE UNOMI IN-DEPTH I 2nd October 201516
VISITOR PROFILES
YOU KNOW ME, I GET IT !
A profile is createdas soon
as a visitor arriveson a site
Trackedby
navigator cookies
Populated through events,
such as page views,CMS
login, Social login, mobile
action, beacon detectedor
form submissions
Sessions are tracked for
each profile,history of
navigation is accessible too.
APACHE UNOMI IN-DEPTH I 2nd October 201517
SEGMENTS
I’M A PERSON NOT A SEGMENT
Built
through
simple UI
Conditions
match user
profile
properties
Potentially
complex
assembly of
conditions
Example
Profilesyounger
than 25 and have
an incomeof more
than USD 100’000
(young rich
segment)
APACHE UNOMI IN-DEPTH I 2nd October 201518
EVENTS
I DID WHAT WHEN ?
Client or server-side eventscanbe sent to the context
server,intheory in very high volume
The context server willprocessthe eventsusing plugins,
either synchronously or asynchronously (for example
using an Apache Mahout BigData analysis cluster)
Example: login eventsends additional user data, page
vieweventused to build user or general analytics, mouse
over eventcan be used to build content heat maps
Sample request:
GET
http://wemicontext.name:8181/eventcollector/view?url=PAGE_URL&referr
er=REFERRER_URL (referrer isdifferentfor AJAX requests so we use the
document.referrer to build thisrequest)
APACHE UNOMI IN-DEPTH I 2nd October 201519
IMPERSONIFICATIONS (PERSONAS)
FOR WHEN YOU WISH YOUWERE SOMEONE ELSE
⎯ Persona definition make it
possible to “emulate” a certain type
of profile, e.g : US visitor, non-US
visitor, search engine bot, …
⎯ Predefined personas as well as
persona editing UIavailable
⎯ Jahia provides a side-panel UI to
view profile and session data for
both the current profile or switch
between available personas and
see immediate personalization
changes
APACHE UNOMI IN-DEPTH I 2nd October 201520
RULES
ONE SERVER TO RULE THEM ALL
⎯ Executed mostly on
event triggers
⎯ Use same conditions are
segments to match events
⎯ May perform a list of
actions (update profile,
session, send email)
APACHE UNOMI IN-DEPTH I 2nd October 201521
RULES, CONTINUED
ANOTHER RULE : YOUSHOULD LISTEN TO
THE SPEAKER INSTEAD OF READING THESE
⎯ Conditions evaluate to a boolean that will
determine if the actions of the rule will be
executed or not
⎯ Conditions may be complex, using operators
such as and/or for building sub-conditions
(condition tree)
⎯ Conditions and actions are either pre-defined
or may be extended using Unomi plugins
Structure:
when
conditions
then
actions
Example:
when
login event is received
then
merge profiles based on login id
APACHE UNOMI IN-DEPTH I 2nd October 201522
PROFILE MERGING
BECAUSE MERGING PEOPLE DIDN’T WORK WELL AS A TITLE
A single (physical) visitor may come to a website or web
service using differentdevicesor browsers
APACHE UNOMI IN-DEPTH I 2nd October 201523
PROFILE MERGING
BECAUSE MERGING PEOPLE DIDN’T WORK WELL AS A TITLE
Each visit will (initially) generate a separate profile ID
Upon visitor identication (usually after login), the current
profile will be merge with any existing profiles with the
same identifier
Tracking cookies will be modified to associated with the
identifier of the mergedprofile
Recognized visitors will therefore be trackedacross
devices,as the same profile instead of differentones
APACHE UNOMI IN-DEPTH I 2nd October 201524
PLUGINS
NOT THAT TYPE OF PLUG, COME ON
Custom conditions to be usedin segments or
rules
Custom actions to be used in rules
Custom session or profile property definitions
Resource bundles
Predefinedrules
Predefinedsegments
Predefinedscoring
PLUGINS MAY INCLUDEPlugins are OSGi bundles that may extend the
built-in functionality of the Context Server
APACHE UNOMI IN-DEPTH I 2nd October 201525
PLUGIN EXAMPLE
YEAH SOME MORE JSON !
MAIL ACTIONPLUGIN
⎯ Defines a new custom action : send an email
⎯ Provides a Java implementation of the action
⎯ Provides a JSON descriptor to declare the action
and it’s parameters to Unomi
⎯ Parameters will be used to build UI to edit the action
instance
{
"id":  "sendMailAction",
"actionExecutor":  "sendMail",
"tags":  [  "event"  ],
"parameters":  [
{
"id":  "from",
"type":  "string",
"multivalued":  false
},
{
"id":  "to",
"type":  "string",
"multivalued":  false
},
{
"id":  "cc",
"type":  "string",
"multivalued":  false
},
APACHE UNOMI IN-DEPTH I 2nd October 201526
PLUGIN EXAMPLE
YEAH SOME MORE JSON !
{
"id":  "bcc",
"type":  "string",
"multivalued":  false
},
{
"id":  "subject",
"type":  "string",
"multivalued":  false
},
{
"id":  "template",
"type":  "string",
"multivalued":  false,
"defaultValue":  "Hello  $profile.properties.("j:firstName")$  
$profile.properties.("j:lastName")$,nHoware  you  doing  today?"
}
]
}
APACHE UNOMI IN-DEPTH I 2nd October 201527
PERSISTENCE
SAVING THOSE PRECIOUS MOMENTS
⎯ Service Provider Interface
⎯ Default implementation : ElasticSearch
⎯ ElasticSearch providesout of the box :
⎯ NoSQL JSON document storage
⎯ Built-in scaling and clustering
⎯ Separate nodes for data storage
& query execution
⎯ Powerfulquery sub-system
⎯ Apache License
APACHE UNOMI IN-DEPTH I 2nd October 201528
REST API
EXPOSING OURSELVES TO THE OUTSIDE, CLEANLY
FUNCTIONALITIES
⎯ Implemented using Apache CXF
⎯ REST + JSON protocol (no SOAP or other
bindings to keepthings simple)
⎯ Exposes most ofUnomi’s built-in services
⎯ Protectedby 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
APACHE UNOMI IN-DEPTH I 2nd October 201529
PRIVACY SERVICE
YOU KNOW ME A BIT TOO MUCH ?
FUNCTIONALITIES
⎯ Server andeventdiscovery
⎯ Currentvisitor profile access
⎯ Retrieving and setting list of eventsto may
or may not be collectedfor currentprofile
⎯ Management of anonymous browsing,
including anonymous collection activation or
anonymizing ofpreviously collecteddata
⎯ Profile deletion
3RD PARTY UIS may be built to
give end-userscontrol over their data.
APACHE UNOMI IN-DEPTH I 2nd October 201530
ALGORITHMS
DISCOVERING (BAD) HABBITS AND BEHAVIORS
This is not yet
implementedin
Unomi…
The Context Server can also integrate “algorithms”, meaning that data can be
processed/mined to extract additional knowledge
APACHE UNOMI IN-DEPTH I 2nd October 201531
ALGORITHMS
OUR IDEAS
RECOMMENDATION ENGINE
SIMILARITY ENGINE
APACHE MAHOUT INTEGRATION
BIGDATA INTEGRATION
APACHE UNOMI IN-DEPTH I 2nd October 201532
ALGORITHMS, CONTINUED
EVEN BETTER TARGETING
Open source reference
implementation will also help
guarantee interoperability
Algorithms have the
potential to make it much
easier for integrators and
developers to provide
functionality to users of
Unomi
If/When OASISContext
Server specification includes
them, the potential for re-
usability between
implementation could be very
interesting
APACHE UNOMI IN-DEPTH I 2nd October 201533
CONNECTORS
NO MORE INAPPROPRIATE JOKES PLEASE
CUSTOM
CONDITIONS
maybe used to
perform dynamic
dataexchanges
uponincoming
events
can perform
calls toexternal
services
EXTERNAL
SERVICES
mayuse Unomi’s
publicURLs or
administrationURLs
to access REST
services (for
querying,reporting,
editing,etc)
EXTERNAL
SYSTEMS
maypushdatainto
Unomieither
throughevents
DIRECT
ACCESS
to ElasticSearch
is alsopossible
to directly
interface with
the persistence
system
CUSTOM
ACTIONS
APACHE UNOMI IN-DEPTH I 2nd October 201534
OASIS CONTEXT SERVERSTANDARD
AN OVERVIEW WITH LOTS OF COMPETITORS
Co-chairs
Serge Huber (myself)
Jahia
Thomas Sigdestad
Enonic
Established technical
committee in April 2015
APACHE UNOMI IN-DEPTH I 2nd October 201535
OASIS CONTEXT SERVERSTANDARD
MEMBER COMPANIES
APACHE UNOMI IN-DEPTH I 2nd October 201536
OASIS CONTEXT SERVERSTANDARD
GOOOOOOAAAAALLLLLSSSS !
PROVIDE ASTANDARD
§ A context server REST API
§ An associateddomainmodel
§ An opensource reference
implementation(ApacheUnomi)
APPROVED
Makesure thatthe
standardis basedonreal
needs of theindustry
DESIGNED FOR GREATNESS
Not onlyCMS-specific, designed
to integratewithas manytoolsas
possible(CRM,ERP, mobile
applications,…)
APACHE UNOMI IN-DEPTH I 2nd October 201537
OASIS CONTEXT SERVERSTANDARD
WORK ORGANIZATION AND STUFF DONE
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cxs
Whole TCmeets 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
APACHE UNOMI IN-DEPTH I 2nd October 201538
INCUBATION PROPOSAL
WHO TO BLAME J
https://wiki.apache.org/incubator/UnomiProposal
Champion
Jean-Baptiste Onofré
Talend
Mentor
Bertrand Delacretaz
Adobe
Mentor
Roman Shaposchnik
Pivotal
Mentor
ChrisMattmann
NASA JPL
APACHE UNOMI IN-DEPTH I 2nd October 201539
CURRENT STATUS & NEXT STEPS
THE FORCE IS STRONG IN THIS ONE
1
2
3
PROPOSAL
to Apache incubator
VOTE
Open right now
ESTABLISH
Incubation project
4
5
6
MOVE CODEBASE
From Github to Apache
Git repository
GROW COMMUNITY
We need you!
WORK
On first projectrelease
APACHE UNOMI IN-DEPTH I 2nd October 201540
COMMERCIAL APPLICATIONS
COMPLETELY GRATUITOUS PLUG
Build your own !
It’s the beauty
of the Apache
License !
First (known) application
Jahia Marketing Factory
APACHE UNOMI IN-DEPTH I 2nd October 201541
TAKING SOME RISKS LIVE
DEMO
JAHIA MARKETING FACTORY + UNOMI
AN EXAMPLE APPLICATION
APACHE UNOMI IN-DEPTH I 2nd October 201542
YOUR TURN
HAVE YOU BEEN READING THESE ?
Q & A
APACHE UNOMI IN-DEPTH I 2nd October 201543
LEARN MORE
THANK YOUSO MUCHFOR YOUR ATTENTION !
Incubation proposal
https://wiki.apache.org/incubator/UnomiProposal
Unomi Github repository
https://github.com/Jahia/unomi
Jahia Marketing Factory
https://www.jahia.com/products/marketing-factory

More Related Content

What's hot

ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiSerge Huber
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...Serge Huber
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Araf Karsh Hamid
 
당근마켓에서 IaC경험
당근마켓에서 IaC경험당근마켓에서 IaC경험
당근마켓에서 IaC경험용진 조
 
Choose the Right Container Storage for Kubernetes
Choose the Right Container Storage for KubernetesChoose the Right Container Storage for Kubernetes
Choose the Right Container Storage for KubernetesYusuf Hadiwinata Sutandar
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explainedconfluent
 
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams APIuser Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams APIconfluent
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk
 
Best Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWSBest Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWSAmazon Web Services
 
Introduction to data flow management using apache nifi
Introduction to data flow management using apache nifiIntroduction to data flow management using apache nifi
Introduction to data flow management using apache nifiAnshuman Ghosh
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and Logstash
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and LogstashKeeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and Logstash
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and LogstashAmazon Web Services
 
Splunk Overview
Splunk OverviewSplunk Overview
Splunk OverviewSplunk
 
Introduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopIntroduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopAjeet Singh Raina
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeFlink Forward
 
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdfFrederik Wouters
 

What's hot (20)

ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomiApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
ApacheCon NA 2019 : Customer segmentation and personalization using apache unomi
 
Introduction to Apache Beam
Introduction to Apache BeamIntroduction to Apache Beam
Introduction to Apache Beam
 
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
UXDev Summit Keynote : A real world story of Angular and Apache Unomi integra...
 
Hands on ansible
Hands on ansibleHands on ansible
Hands on ansible
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
 
Apache Flink Deep Dive
Apache Flink Deep DiveApache Flink Deep Dive
Apache Flink Deep Dive
 
당근마켓에서 IaC경험
당근마켓에서 IaC경험당근마켓에서 IaC경험
당근마켓에서 IaC경험
 
Choose the Right Container Storage for Kubernetes
Choose the Right Container Storage for KubernetesChoose the Right Container Storage for Kubernetes
Choose the Right Container Storage for Kubernetes
 
Apache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals ExplainedApache Kafka Architecture & Fundamentals Explained
Apache Kafka Architecture & Fundamentals Explained
 
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams APIuser Behavior Analysis with Session Windows and Apache Kafka's Streams API
user Behavior Analysis with Session Windows and Apache Kafka's Streams API
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
 
Best Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWSBest Practices for Using Apache Spark on AWS
Best Practices for Using Apache Spark on AWS
 
Introduction to data flow management using apache nifi
Introduction to data flow management using apache nifiIntroduction to data flow management using apache nifi
Introduction to data flow management using apache nifi
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and Logstash
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and LogstashKeeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and Logstash
Keeping Up with the ELK Stack: Elasticsearch, Kibana, Beats, and Logstash
 
Splunk Overview
Splunk OverviewSplunk Overview
Splunk Overview
 
Introduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate WorkshopIntroduction to Docker Compose | Docker Intermediate Workshop
Introduction to Docker Compose | Docker Intermediate Workshop
 
Autoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive ModeAutoscaling Flink with Reactive Mode
Autoscaling Flink with Reactive Mode
 
Ansible
AnsibleAnsible
Ansible
 
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf
[DRUPALCON 2022] Open Personalization with Apache Unomi & Mautic (Workshop).pdf
 

Viewers also liked

Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionSerge Huber
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafSerge Huber
 
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahia Solutions Group
 
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahia Solutions Group
 
Apache REEF - stdlib for big data
Apache REEF - stdlib for big dataApache REEF - stdlib for big data
Apache REEF - stdlib for big dataSergiy Matusevych
 

Viewers also liked (6)

Introducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 SessionIntroducing Apache Unomi - JavaOne 2015 Session
Introducing Apache Unomi - JavaOne 2015 Session
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
 
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie AuvrayJahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
JahiaOne 2015- 360° with privacy - The Road to an Ethical WEM by Elie Auvray
 
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital FactoryJahiaOne 2015 - Building high-performance user experiences with Digital Factory
JahiaOne 2015 - Building high-performance user experiences with Digital Factory
 
Apache REEF - stdlib for big data
Apache REEF - stdlib for big dataApache REEF - stdlib for big data
Apache REEF - stdlib for big data
 
Giraph+Gora in ApacheCon14
Giraph+Gora in ApacheCon14Giraph+Gora in ApacheCon14
Giraph+Gora in ApacheCon14
 

Similar to Apache Unomi In Depth - ApacheCon EU 2015 Session

Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearchprotofy
 
SnowCamp 2016 - Apache Unomi Introduction
SnowCamp 2016 - Apache Unomi IntroductionSnowCamp 2016 - Apache Unomi Introduction
SnowCamp 2016 - Apache Unomi IntroductionChristophe Laprun
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...Serge Huber
 
AWS Cyber Security Best Practices
AWS Cyber Security Best PracticesAWS Cyber Security Best Practices
AWS Cyber Security Best PracticesDoiT International
 
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...James Gallagher
 
Introduction to 2FA on AWS
Introduction to 2FA on AWSIntroduction to 2FA on AWS
Introduction to 2FA on AWSOlinData
 
Cloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFECloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFEPrabath Siriwardena
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStackSteve Martinelli
 
MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB
 
AnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyAnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyKiana Tennyson
 
Zalando - The Big Switch - ForgeRock Identity Summit 2015
Zalando - The Big Switch - ForgeRock Identity Summit 2015Zalando - The Big Switch - ForgeRock Identity Summit 2015
Zalando - The Big Switch - ForgeRock Identity Summit 2015Jan Löffler
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 
Saving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroSaving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroQuickBase, Inc.
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocationguestd5dde6
 
Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8goodfriday
 
Php & Web Security - PHPXperts 2009
Php & Web Security - PHPXperts 2009Php & Web Security - PHPXperts 2009
Php & Web Security - PHPXperts 2009mirahman
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldSitaraman Lakshminarayanan
 

Similar to Apache Unomi In Depth - ApacheCon EU 2015 Session (20)

Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
SnowCamp 2016 - Apache Unomi Introduction
SnowCamp 2016 - Apache Unomi IntroductionSnowCamp 2016 - Apache Unomi Introduction
SnowCamp 2016 - Apache Unomi Introduction
 
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
ApacheCon NA 2018 : Apache Unomi, an Open Source Customer Data Platformapache...
 
2023-May.pptx
2023-May.pptx2023-May.pptx
2023-May.pptx
 
AWS Cyber Security Best Practices
AWS Cyber Security Best PracticesAWS Cyber Security Best Practices
AWS Cyber Security Best Practices
 
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
IBM Connections Activity Stream 3rd Party Integration - Social Connect VI - P...
 
Introduction to 2FA on AWS
Introduction to 2FA on AWSIntroduction to 2FA on AWS
Introduction to 2FA on AWS
 
Cloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFECloud Native Identity with SPIFFE
Cloud Native Identity with SPIFFE
 
SEA Open Hack - YAP
SEA Open Hack - YAPSEA Open Hack - YAP
SEA Open Hack - YAP
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day One
 
AnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior CreativelyAnDevCon - Tracking User Behavior Creatively
AnDevCon - Tracking User Behavior Creatively
 
Zalando - The Big Switch - ForgeRock Identity Summit 2015
Zalando - The Big Switch - ForgeRock Identity Summit 2015Zalando - The Big Switch - ForgeRock Identity Summit 2015
Zalando - The Big Switch - ForgeRock Identity Summit 2015
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Saving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio HaroSaving Time And Effort With QuickBase Api - Sergio Haro
Saving Time And Effort With QuickBase Api - Sergio Haro
 
UserCentric Identity based Service Invocation
UserCentric Identity based Service InvocationUserCentric Identity based Service Invocation
UserCentric Identity based Service Invocation
 
Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8Integrating Your Site With Internet Explorer 8
Integrating Your Site With Internet Explorer 8
 
Starwest 2008
Starwest 2008Starwest 2008
Starwest 2008
 
Php & Web Security - PHPXperts 2009
Php & Web Security - PHPXperts 2009Php & Web Security - PHPXperts 2009
Php & Web Security - PHPXperts 2009
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services world
 

More from Serge Huber

GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL IntroductionSerge Huber
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerSerge Huber
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)Serge Huber
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comSerge Huber
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applicationsSerge Huber
 

More from Serge Huber (6)

GraphQL Introduction
GraphQL IntroductionGraphQL Introduction
GraphQL Introduction
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log Analyzer
 
DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)DEVOXX FR 2016 We're Watching You (Apache Unomi)
DEVOXX FR 2016 We're Watching You (Apache Unomi)
 
Webinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.comWebinar Présentation jahia en collaboration avec Developpez.com
Webinar Présentation jahia en collaboration avec Developpez.com
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
Portets to composite applications
Portets to composite applicationsPortets to composite applications
Portets to composite applications
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Apache Unomi In Depth - ApacheCon EU 2015 Session

  • 1. APACHE UNOMI IN-DEPTH I 2nd October 20151 APACHE UNOMI IN-DEPTH SERGE HUBER, CTO & Co-founder, shuber@jahia.com
  • 2. APACHE UNOMI IN-DEPTH I 2nd October 20152 HISTORY NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
  • 3. APACHE UNOMI IN-DEPTH I 2nd October 20153 HISTORY NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
  • 4. APACHE UNOMI IN-DEPTH I 2nd October 20154 HISTORY NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
  • 5. APACHE UNOMI IN-DEPTH I 2nd October 20155 HISTORY NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
  • 6. APACHE UNOMI IN-DEPTH I 2nd October 20156 HISTORY NOT SO LONG AGO, IN A GALAXY NOT SO FAR AWAY…
  • 7. APACHE UNOMI IN-DEPTH I 2nd October 20157 INTRODUCING UNOMI YOU KNOW ME ? WHAT IS UNOMI?
  • 8. APACHE UNOMI IN-DEPTH I 2nd October 20158 TARGETED FUNCTIONALITIES MARKETING TO MARKETERS UNOMI User tracking Event tracking Goal tracking, scoring Segmentation Form Input tracking Download tracking Impersonification (personas) A/B testing Profile (visitor,contact,leads) management and export Reporting Privacy management
  • 9. APACHE UNOMI IN-DEPTH I 2nd October 20159 ARCHITECTURE DESIGN GOALS FROM LESSONS LEARNED THE HARD WAY 1 2 3 Avoid putting additional load on the WCMnodes Highly scalable (avoiding node cross-talk) Make it easy for users to define and use marketing segments 4 5 6 Integration with existing analytics Integration with multiple systems including mobile apps, not just WCM Highly pluggable architecture, making it easy to extend and build differentsolutions based on a common core
  • 10. APACHE UNOMI IN-DEPTH I 2nd October 201510 SCALING ARCHITECTURE THROWING MORE SERVERS AT THE PROBLEM CONTEXT SERVER CMS Issue trackingCRMSocial
  • 11. APACHE UNOMI IN-DEPTH I 2nd October 201511 INPUT/OUTPUT RULES ACTIONS Protocols HTTP REST + JSON SEGMENTSEVENTS CONTEXT CONDITIONS PROFILES MUST REFRAIN… NO JOKES ON I/O CONTEXT SERVER
  • 12. APACHE UNOMI IN-DEPTH I 2nd October 201512 REQUEST FLOW HEY LOOKI HAVE ARROWS Load HTML page Load HTML +JS to connectContextServer Load context.js Context for currentrequest (Optional)Load contentbased on context (Optional)Send event such as login / hover BROWSER CMS CONTEXT SERVER JS callbacks
  • 13. APACHE UNOMI IN-DEPTH I 2nd October 201513 CONTEXT EXAMPLE digitalData = { "loaded": true, "user": [{ "profiles": [{ "profileInfo": { "profileId": "d6454520-f2b6-40b7-829c-d17214f209d1”, "firstName": "Serge", "lastName": "Huber”, "userName": "Serge Huber", "email": "bhillou@yahoo.com", "gender": "male”, "itemClass": "org.oasis_open.context.server.api.User", "segments": ["alwaysTrue", "maleGender"] } }] }]}; FOR THE JSON ADDICTS LIKE ME
  • 14. APACHE UNOMI IN-DEPTH I 2nd October 201514 UNOMI ARCHITECTURE LOTS OF BOXES APACHEKARAF PERSISTENCE IMPLEMENTATION(ELASTICSEARCH, …) PERSISTENCE SPI(SERVICE PROVIDER INTERFACE) APACHE CXF REST API OSGISERVICES
  • 15. APACHE UNOMI IN-DEPTH I 2nd October 201515 UNOMI SERVICES STUFF THAT ACTUALLY DOES STUFF PROFILES Managesprofilesandpersonas (loading,updating,saving, deleting,merging, …) PRIVACY Managesprivacy (anonymous browsing,event filtering,profile deletion) QUERIES Performs queries againstthe stored data(events,profiles,…) SEGMENTS Managessegments(definitions, loading,saving,scoring) DEFINITIONS Managespropertytypes, conditiontypes,actionstypes, tags andother metadata CLUSTERING Managesthe clusterof context servers
  • 16. APACHE UNOMI IN-DEPTH I 2nd October 201516 VISITOR PROFILES YOU KNOW ME, I GET IT ! A profile is createdas soon as a visitor arriveson a site Trackedby navigator cookies Populated through events, such as page views,CMS login, Social login, mobile action, beacon detectedor form submissions Sessions are tracked for each profile,history of navigation is accessible too.
  • 17. APACHE UNOMI IN-DEPTH I 2nd October 201517 SEGMENTS I’M A PERSON NOT A SEGMENT Built through simple UI Conditions match user profile properties Potentially complex assembly of conditions Example Profilesyounger than 25 and have an incomeof more than USD 100’000 (young rich segment)
  • 18. APACHE UNOMI IN-DEPTH I 2nd October 201518 EVENTS I DID WHAT WHEN ? Client or server-side eventscanbe sent to the context server,intheory in very high volume The context server willprocessthe eventsusing plugins, either synchronously or asynchronously (for example using an Apache Mahout BigData analysis cluster) Example: login eventsends additional user data, page vieweventused to build user or general analytics, mouse over eventcan be used to build content heat maps Sample request:
GET http://wemicontext.name:8181/eventcollector/view?url=PAGE_URL&referr er=REFERRER_URL (referrer isdifferentfor AJAX requests so we use the document.referrer to build thisrequest)
  • 19. APACHE UNOMI IN-DEPTH I 2nd October 201519 IMPERSONIFICATIONS (PERSONAS) FOR WHEN YOU WISH YOUWERE SOMEONE ELSE ⎯ Persona definition make it possible to “emulate” a certain type of profile, e.g : US visitor, non-US visitor, search engine bot, … ⎯ Predefined personas as well as persona editing UIavailable ⎯ Jahia provides a side-panel UI to view profile and session data for both the current profile or switch between available personas and see immediate personalization changes
  • 20. APACHE UNOMI IN-DEPTH I 2nd October 201520 RULES ONE SERVER TO RULE THEM ALL ⎯ Executed mostly on event triggers ⎯ Use same conditions are segments to match events ⎯ May perform a list of actions (update profile, session, send email)
  • 21. APACHE UNOMI IN-DEPTH I 2nd October 201521 RULES, CONTINUED ANOTHER RULE : YOUSHOULD LISTEN TO THE SPEAKER INSTEAD OF READING THESE ⎯ Conditions evaluate to a boolean that will determine if the actions of the rule will be executed or not ⎯ Conditions may be complex, using operators such as and/or for building sub-conditions (condition tree) ⎯ Conditions and actions are either pre-defined or may be extended using Unomi plugins Structure: when conditions then actions Example: when login event is received then merge profiles based on login id
  • 22. APACHE UNOMI IN-DEPTH I 2nd October 201522 PROFILE MERGING BECAUSE MERGING PEOPLE DIDN’T WORK WELL AS A TITLE A single (physical) visitor may come to a website or web service using differentdevicesor browsers
  • 23. APACHE UNOMI IN-DEPTH I 2nd October 201523 PROFILE MERGING BECAUSE MERGING PEOPLE DIDN’T WORK WELL AS A TITLE Each visit will (initially) generate a separate profile ID Upon visitor identication (usually after login), the current profile will be merge with any existing profiles with the same identifier Tracking cookies will be modified to associated with the identifier of the mergedprofile Recognized visitors will therefore be trackedacross devices,as the same profile instead of differentones
  • 24. APACHE UNOMI IN-DEPTH I 2nd October 201524 PLUGINS NOT THAT TYPE OF PLUG, COME ON Custom conditions to be usedin segments or rules Custom actions to be used in rules Custom session or profile property definitions Resource bundles Predefinedrules Predefinedsegments Predefinedscoring PLUGINS MAY INCLUDEPlugins are OSGi bundles that may extend the built-in functionality of the Context Server
  • 25. APACHE UNOMI IN-DEPTH I 2nd October 201525 PLUGIN EXAMPLE YEAH SOME MORE JSON ! MAIL ACTIONPLUGIN ⎯ Defines a new custom action : send an email ⎯ Provides a Java implementation of the action ⎯ Provides a JSON descriptor to declare the action and it’s parameters to Unomi ⎯ Parameters will be used to build UI to edit the action instance { "id":  "sendMailAction", "actionExecutor":  "sendMail", "tags":  [  "event"  ], "parameters":  [ { "id":  "from", "type":  "string", "multivalued":  false }, { "id":  "to", "type":  "string", "multivalued":  false }, { "id":  "cc", "type":  "string", "multivalued":  false },
  • 26. APACHE UNOMI IN-DEPTH I 2nd October 201526 PLUGIN EXAMPLE YEAH SOME MORE JSON ! { "id":  "bcc", "type":  "string", "multivalued":  false }, { "id":  "subject", "type":  "string", "multivalued":  false }, { "id":  "template", "type":  "string", "multivalued":  false, "defaultValue":  "Hello  $profile.properties.("j:firstName")$   $profile.properties.("j:lastName")$,nHoware  you  doing  today?" } ] }
  • 27. APACHE UNOMI IN-DEPTH I 2nd October 201527 PERSISTENCE SAVING THOSE PRECIOUS MOMENTS ⎯ Service Provider Interface ⎯ Default implementation : ElasticSearch ⎯ ElasticSearch providesout of the box : ⎯ NoSQL JSON document storage ⎯ Built-in scaling and clustering ⎯ Separate nodes for data storage & query execution ⎯ Powerfulquery sub-system ⎯ Apache License
  • 28. APACHE UNOMI IN-DEPTH I 2nd October 201528 REST API EXPOSING OURSELVES TO THE OUTSIDE, CLEANLY FUNCTIONALITIES ⎯ Implemented using Apache CXF ⎯ REST + JSON protocol (no SOAP or other bindings to keepthings simple) ⎯ Exposes most ofUnomi’s built-in services ⎯ Protectedby 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
  • 29. APACHE UNOMI IN-DEPTH I 2nd October 201529 PRIVACY SERVICE YOU KNOW ME A BIT TOO MUCH ? FUNCTIONALITIES ⎯ Server andeventdiscovery ⎯ Currentvisitor profile access ⎯ Retrieving and setting list of eventsto may or may not be collectedfor currentprofile ⎯ Management of anonymous browsing, including anonymous collection activation or anonymizing ofpreviously collecteddata ⎯ Profile deletion 3RD PARTY UIS may be built to give end-userscontrol over their data.
  • 30. APACHE UNOMI IN-DEPTH I 2nd October 201530 ALGORITHMS DISCOVERING (BAD) HABBITS AND BEHAVIORS This is not yet implementedin Unomi… The Context Server can also integrate “algorithms”, meaning that data can be processed/mined to extract additional knowledge
  • 31. APACHE UNOMI IN-DEPTH I 2nd October 201531 ALGORITHMS OUR IDEAS RECOMMENDATION ENGINE SIMILARITY ENGINE APACHE MAHOUT INTEGRATION BIGDATA INTEGRATION
  • 32. APACHE UNOMI IN-DEPTH I 2nd October 201532 ALGORITHMS, CONTINUED EVEN BETTER TARGETING Open source reference implementation will also help guarantee interoperability Algorithms have the potential to make it much easier for integrators and developers to provide functionality to users of Unomi If/When OASISContext Server specification includes them, the potential for re- usability between implementation could be very interesting
  • 33. APACHE UNOMI IN-DEPTH I 2nd October 201533 CONNECTORS NO MORE INAPPROPRIATE JOKES PLEASE CUSTOM CONDITIONS maybe used to perform dynamic dataexchanges uponincoming events can perform calls toexternal services EXTERNAL SERVICES mayuse Unomi’s publicURLs or administrationURLs to access REST services (for querying,reporting, editing,etc) EXTERNAL SYSTEMS maypushdatainto Unomieither throughevents DIRECT ACCESS to ElasticSearch is alsopossible to directly interface with the persistence system CUSTOM ACTIONS
  • 34. APACHE UNOMI IN-DEPTH I 2nd October 201534 OASIS CONTEXT SERVERSTANDARD AN OVERVIEW WITH LOTS OF COMPETITORS Co-chairs Serge Huber (myself) Jahia Thomas Sigdestad Enonic Established technical committee in April 2015
  • 35. APACHE UNOMI IN-DEPTH I 2nd October 201535 OASIS CONTEXT SERVERSTANDARD MEMBER COMPANIES
  • 36. APACHE UNOMI IN-DEPTH I 2nd October 201536 OASIS CONTEXT SERVERSTANDARD GOOOOOOAAAAALLLLLSSSS ! PROVIDE ASTANDARD § A context server REST API § An associateddomainmodel § An opensource reference implementation(ApacheUnomi) APPROVED Makesure thatthe standardis basedonreal needs of theindustry DESIGNED FOR GREATNESS Not onlyCMS-specific, designed to integratewithas manytoolsas possible(CRM,ERP, mobile applications,…)
  • 37. APACHE UNOMI IN-DEPTH I 2nd October 201537 OASIS CONTEXT SERVERSTANDARD WORK ORGANIZATION AND STUFF DONE https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cxs Whole TCmeets 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
  • 38. APACHE UNOMI IN-DEPTH I 2nd October 201538 INCUBATION PROPOSAL WHO TO BLAME J https://wiki.apache.org/incubator/UnomiProposal Champion Jean-Baptiste Onofré Talend Mentor Bertrand Delacretaz Adobe Mentor Roman Shaposchnik Pivotal Mentor ChrisMattmann NASA JPL
  • 39. APACHE UNOMI IN-DEPTH I 2nd October 201539 CURRENT STATUS & NEXT STEPS THE FORCE IS STRONG IN THIS ONE 1 2 3 PROPOSAL to Apache incubator VOTE Open right now ESTABLISH Incubation project 4 5 6 MOVE CODEBASE From Github to Apache Git repository GROW COMMUNITY We need you! WORK On first projectrelease
  • 40. APACHE UNOMI IN-DEPTH I 2nd October 201540 COMMERCIAL APPLICATIONS COMPLETELY GRATUITOUS PLUG Build your own ! It’s the beauty of the Apache License ! First (known) application Jahia Marketing Factory
  • 41. APACHE UNOMI IN-DEPTH I 2nd October 201541 TAKING SOME RISKS LIVE DEMO JAHIA MARKETING FACTORY + UNOMI AN EXAMPLE APPLICATION
  • 42. APACHE UNOMI IN-DEPTH I 2nd October 201542 YOUR TURN HAVE YOU BEEN READING THESE ? Q & A
  • 43. APACHE UNOMI IN-DEPTH I 2nd October 201543 LEARN MORE THANK YOUSO MUCHFOR YOUR ATTENTION ! Incubation proposal https://wiki.apache.org/incubator/UnomiProposal Unomi Github repository https://github.com/Jahia/unomi Jahia Marketing Factory https://www.jahia.com/products/marketing-factory