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

Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...
Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...
Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...Databricks
 
Getting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGetting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGeorg Knon
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedInGuozhang Wang
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack PresentationAmr Alaa Yassen
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloudconfluent
 
Getting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaGetting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaSyah Dwi Prihatmoko
 
Machine Learning and the Elastic Stack
Machine Learning and the Elastic StackMachine Learning and the Elastic Stack
Machine Learning and the Elastic StackYann Cluchey
 
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Helena Edelson
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack IntroductionVikram Shinde
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeDatabricks
 
Power of Splunk Search Processing Language (SPL) ...
Power of Splunk Search Processing Language (SPL)                             ...Power of Splunk Search Processing Language (SPL)                             ...
Power of Splunk Search Processing Language (SPL) ...Splunk
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusGrafana Labs
 
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...HostedbyConfluent
 
Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path ForwardAlluxio, Inc.
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackRich Lee
 
Kafka Tutorial - introduction to the Kafka streaming platform
Kafka Tutorial - introduction to the Kafka streaming platformKafka Tutorial - introduction to the Kafka streaming platform
Kafka Tutorial - introduction to the Kafka streaming platformJean-Paul Azar
 
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)Faysal Shaarani (MBA)
 
Nicola Pagni - Anomaly Detection in Elasticsearch
Nicola Pagni - Anomaly Detection in ElasticsearchNicola Pagni - Anomaly Detection in Elasticsearch
Nicola Pagni - Anomaly Detection in ElasticsearchMeetupDataScienceRoma
 

What's hot (20)

Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...
Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...
Smartsheet’s Transition to Snowflake and Databricks: The Why and Immediate Im...
 
Getting started with Splunk - Break out Session
Getting started with Splunk - Break out SessionGetting started with Splunk - Break out Session
Getting started with Splunk - Break out Session
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
Elastic stack Presentation
Elastic stack PresentationElastic stack Presentation
Elastic stack Presentation
 
Kafka At Scale in the Cloud
Kafka At Scale in the CloudKafka At Scale in the Cloud
Kafka At Scale in the Cloud
 
Getting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and GrafanaGetting Started Monitoring with Prometheus and Grafana
Getting Started Monitoring with Prometheus and Grafana
 
Machine Learning and the Elastic Stack
Machine Learning and the Elastic StackMachine Learning and the Elastic Stack
Machine Learning and the Elastic Stack
 
Elk - An introduction
Elk - An introductionElk - An introduction
Elk - An introduction
 
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
Leveraging Kafka for Big Data in Real Time Bidding, Analytics, ML & Campaign ...
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Making Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta LakeMaking Apache Spark Better with Delta Lake
Making Apache Spark Better with Delta Lake
 
Power of Splunk Search Processing Language (SPL) ...
Power of Splunk Search Processing Language (SPL)                             ...Power of Splunk Search Processing Language (SPL)                             ...
Power of Splunk Search Processing Language (SPL) ...
 
Monitoring Kubernetes with Prometheus
Monitoring Kubernetes with PrometheusMonitoring Kubernetes with Prometheus
Monitoring Kubernetes with Prometheus
 
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...
Building a Streaming Pipeline on Kubernetes Using Kafka Connect, KSQLDB & Apa...
 
Apache Hudi: The Path Forward
Apache Hudi: The Path ForwardApache Hudi: The Path Forward
Apache Hudi: The Path Forward
 
Centralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stackCentralized log-management-with-elastic-stack
Centralized log-management-with-elastic-stack
 
Tableau Architecture
Tableau ArchitectureTableau Architecture
Tableau Architecture
 
Kafka Tutorial - introduction to the Kafka streaming platform
Kafka Tutorial - introduction to the Kafka streaming platformKafka Tutorial - introduction to the Kafka streaming platform
Kafka Tutorial - introduction to the Kafka streaming platform
 
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)
Load & Unload Data TO and FROM Snowflake (By Faysal Shaarani)
 
Nicola Pagni - Anomaly Detection in Elasticsearch
Nicola Pagni - Anomaly Detection in ElasticsearchNicola Pagni - Anomaly Detection in Elasticsearch
Nicola Pagni - Anomaly Detection in Elasticsearch
 

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
 
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
 
Cloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsCloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsChris DeLashmutt
 

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
 
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
 
Cloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and OpsCloud Foundry API for Fun and Ops
Cloud Foundry API for Fun and Ops
 

More from Serge Huber

ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...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
 
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
 
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 (8)

ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
ApacheCon NA 2019 : Adding AI to customer segmentation using Apache Unomi and...
 
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)
 
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...
 
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

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 

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