Upload
christophe-laprun
View
166
Download
4
Embed Size (px)
Citation preview
Apache Unomi: an introduction I SnowCamp 2016 1 1
APACHE UNOMI: AN INTRODUCTIONCHRISTOPHE LAPRUN, SENIOR SOFTWARE ENGINEER, JAHIA
@METACOSM
Apache Unomi: an introduction I SnowCamp 2016 2
Context, context, context!
MOTIVATION
Apache Unomi: an introduction I SnowCamp 2016 3
MORE DATA THAN EVER
BUT CAN YOU USE IT?
Mobile IoTWeb
(Big)Data
Profit?
Apache Unomi: an introduction I SnowCamp 2016 4 4
PROFIT?
SHOW ME THE MONEY!
For enterprises, it’s all about making sense of the context
Information is ⎯ coming from lots of different sources ⎯ split in shards, each a facet of the real user
Information systems do not usually play well together
Need to unify information streams and simplify access and analysis to get actionable data
Apache Unomi: an introduction I SnowCamp 2016 5 5
THE OTHER SIDE OF THE COIN
HEADS OR TAILS?
The other side of the data equation is, of course, users
User targeting often fails or, on the other end of the spectrum, works too well (creep factor)
What do users want? ⎯ Targeted, appropriate, interesting content
when consented ⎯ Completely anonymity, sometimes
Apache Unomi: an introduction I SnowCamp 2016 6
TRUST ISSUES
It takes 20 years to build a reputation and five minutes to ruin it.
- Warren Buffet
Apache Unomi: an introduction I SnowCamp 2016 7
This one’s just right!
GOLDILOCKS ZONE
User needsBusiness needs
Apache Unomi: an introduction I SnowCamp 2016 8 8
THE IDEA
WHAT IF?
Aggregate user information in a single context-providing server
Provide a single entry point to unify context management both for users and enterprises
Able to import / export data from other systems
Make it open & extensible and standardize it
Provide users with privacy controls
Apache Unomi: an introduction I SnowCamp 2016 9 9
INTRODUCING UNOMI
YOU KNOW ME?
A Java implementation of the context server concept
Built on top of proven technologies for scalability and ease of extension
Aimed at being the reference implementation of the upcoming OASIS Context Server standard
Apache Unomi: an introduction I SnowCamp 2016
Unomi
10
UNOMI ARCHITECTUREOVERVIEW
REST API
OSGi Services
Persistence SPI
Apache KarafApache CXF
Elasticsearch
PluginsPluginsPlugins
Apache Unomi: an introduction I SnowCamp 2016 11
TARGETED FUNCTIONALITIESA LITTLE FOR EVERYONE
UNOMI
User tracking
Event tracking
Goal tracking, scoring Segmentation Form Input
tracking
Download tracking
Impersonation (personas)
A/B testing
Profile (visitor,contact,leads)
management and exportReporting
Privacy management
Apache Unomi: an introduction I SnowCamp 2016 12
ARCHITECTURE DESIGN GOALSFROM LESSONS LEARNED THE HARD WAY
1
2
3
Avoid putting additional load on client nodes
Highly scalable (avoid node cross-talk)
Make it easy for clients to create UIs to define and use collected data
4
5
6
Integrate with existing systems
Capable of driving external systems if needed
Make it easy to extend core functionality via plugins
Apache Unomi: an introduction I SnowCamp 2016 13
SCALING ARCHITECTURE
THROWING MORE SERVERS AT THE PROBLEM
Unomi CMS
Issue trackingCRMSocial
Apache Unomi: an introduction I SnowCamp 2016 14
INTERACTION WITH UNOMI
RULES
ACTIONS
SEGMENTSEVENTS
CONTEXT
CONDITIONS
PROFILES
TYPICALLY…
UNOMI
REST API
Apache Unomi: an introduction I SnowCamp 2016 15
EXAMPLE CONTEXT
digitalData = { "loaded": true, "user": [{ "profiles": [{ "profileInfo": { "profileId": "d6454520-f2b6-40b7-829c-d17214f209d1”, "firstName": "Serge", "lastName": "Huber”, "userName": "Serge Huber", "email": "[email protected]", "gender": "male”, "itemClass": "org.oasis_open.context.server.api.User", "segments": ["alwaysTrue", "maleGender"] } }] }]};
LEVERAGING CUSTOMER EXPERIENCE DIGITAL DATA LAYER 1.0
Apache Unomi: an introduction I SnowCamp 2016 16
UNOMI SERVICESSTUFF THAT ACTUALLY DOES STUFF…
PROFILESManages profiles and personas
(loading, updating, saving, deleting, merging, …)
PRIVACYManages privacy (anonymous
browsing, event filtering, profile deletion)
QUERIESPerforms queries against the
stored data (events, profiles, …)
SEGMENTSManages segments (definitions, loading, saving, scoring)
DEFINITIONSManages property types, condition types, actions types, tags and other metadata
CLUSTERINGManages the cluster of context servers
Apache Unomi: an introduction I SnowCamp 2016 17
VISITOR PROFILESPROFILING MADE EASY
A profile is created as soon as a visitor arrives on a site
Populated through events, such as page views, CMS login, Social login, mobile action, beacon detected or form submissions
Sessions are tracked for each profile, history of navigation is accessible too.
Apache Unomi: an introduction I SnowCamp 2016 18
SEGMENTSI’M A PERSON, NOT A SEGMENT
Designed for easy
GUI creation
Conditions match user
profile properties
Potentially complex
assembly of conditions
Example Profiles younger than 25 and have an income of more than USD 100’000 (young rich segment)
Apache Unomi: an introduction I SnowCamp 2016 19 19
EVENTS
I DID WHAT WHEN? REALLY?
Client or server-side events can be sent to Unomi.
Events are processed natively or via plugins, synchronously or asynchronously (e.g. using Apache Mahout)
Apache Unomi: an introduction I SnowCamp 2016 20 20
IMPERSONATION (PERSONAS)FOR WHEN YOU WISH YOU WERE SOMEONE ELSE
Persona definitions make it possible to “emulate” a certain type of profile, e.g : US visitor, non-US visitor, search engine bot, …
Predefined personas but you can of course define your own
Allows front-ends to create personalisation UIs to quickly test changes based on persona profiles
Apache Unomi: an introduction I SnowCamp 2016 21 21
RULES
ONE SERVER TO RULE THEM ALL!
Conditions evaluate to a boolean that will determine if the actions of the rule are executed or not
Conditions may be complex, using Boolean operators for building sub-conditions
Conditions and actions are either pre-defined or defined as part of a Unomi plugin
WHEN conditions THEN actions
Apache Unomi: an introduction I SnowCamp 2016 22
PROFILE MERGINGBECAUSE MERGING PEOPLE IS CREEPY
A single (physical) visitor may come to a web site or web service using different devices or browsers
Apache Unomi: an introduction I SnowCamp 2016 23
PROFILE MERGINGBECAUSE MERGING PEOPLE IS CREEPY
Each visit will (initially) generate a separate profile ID
Upon visitor identification (usually after login), the current profile will be merged with any existing profiles with the same identifier
Any tracking cookies will be modified to be associated with the identifier of the merged profile
Recognized visitors will therefore be tracked across devices, as the same profile instead of different ones
Apache Unomi: an introduction I SnowCamp 2016 24
PLUGINSROOM TO GROW, IN ALL THE RIGHT SPOTS
Custom conditions to be used in segments or rules
Custom actions to be used in rules
Custom session or profile property definitions
Resource bundles
Predefined rules
Predefined segments
Predefined scoring
PLUGINS MAY INCLUDE Plugins are OSGi bundles that may extend the built-in functionality of the Context Server
Apache Unomi: an introduction I SnowCamp 2016 25
PERSISTENCESAVING THOSE PRECIOUS MOMENTS
⎯ Service Provider Interface ⎯ Default implementation : Elasticsearch ⎯ Elasticsearch provides out of the box :
⎯ NoSQL JSON document storage
⎯ Built-in scaling and clustering
⎯ Separate nodes for data storage & query execution
⎯ Powerful query sub-system
⎯ Apache License
Apache Unomi: an introduction I SnowCamp 2016 26
REST APIEXPOSING OURSELVES TO THE OUTSIDE, CLEANLY
FUNCTIONALITIES
⎯ Implemented using Apache CXF
⎯ JSON binding to keep things simple
⎯ Exposes most of Unomi’s built-in services
⎯ Protected by Karaf container security
⎯ Will be standardized by OASIS Context Server specification
⎯ Can be used to either built administration UI or interface with third party systems
Apache Unomi: an introduction I SnowCamp 2016 27 27
PRIVACY SERVICE
MAYBE, YOU KNOW ME A BIT TOO MUCH…
Server and event discovery
Current visitor profile access
Retrieving and setting list of events that may or may not be collected for current profile
Management of anonymous browsing, including anonymous collection activation or anonymizing of previously collected data
Profile deletion
3rd PARTY UI
CREATION
OPPORTUNITY
Apache Unomi: an introduction I SnowCamp 2016 28 28
ALGORITHMS
GAINING INSIGHTS ON COLLECTED DATA
Native support for “algorithms” to process/mine data and extract additional knowledge is being discussed
Would provide more functionality out of the box
If standardized, potential for re-usability between implementation is intriguing
Open source reference implementation should help interoperability
LET THE
COMMUNITY
DISCUSS AND
PROPOSE
Apache Unomi: an introduction I SnowCamp 2016 29
ALGORITHMSOUR IDEAS
RECOMMENDATION ENGINEpropose products based on other
users behaviors
SIMILARITY ENGINEassociated users or any items
that are similar
APACHE MAHOUT INTEGRATION
$BIG_DATA_FRAMEWORK INTEGRATION
tools/frameworks to leverage the structured data
present in the Context Server
Apache Unomi: an introduction I SnowCamp 2016 30
CONNECTORSEXTENSION POINTS
CUSTOM CONDITIONSmay be used to
perform dynamic data exchanges upon incoming
events
can perform calls to external
services
EXTERNAL SERVICES
may use Unomi’s public URLs or
administration URLs to access REST
services (for querying, reporting,
editing, etc)
EXTERNAL SYSTEMS
may push data into Unomi either
through events
DIRECT ACCESS
to ElasticSearch is also possible
to directly interface with
the persistence system
CUSTOM ACTIONS
Apache Unomi: an introduction I SnowCamp 2016 31
A.K.A. CXS
OASIS CONTEXT SERVER STANDARD
Apache Unomi: an introduction I SnowCamp 2016 32
OASIS CONTEXT SERVER STANDARDAN OVERVIEW WITH LOTS OF COMPETITORS
Co-chairs
Serge Huber Jahia
Thomas Sigdestad Enonic
Established technical committee in April 2015
Apache Unomi: an introduction I SnowCamp 2016 33
OASIS CONTEXT SERVER STANDARDMEMBER COMPANIES
YOU?
Apache Unomi: an introduction I SnowCamp 2016 34
OASIS CONTEXT SERVER STANDARDGOOOOAAAAAAALLLLLLSSSSS!
PROVIDE A STANDARD
▪ A context server REST API
▪ An associated domain model
▪ An open source reference
implementation (Apache Unomi)
APPROVED
Make sure that the
standard is based on real
needs of the industry
DESIGNED FOR GREATNESS
Not only CMS-specific, designed
to integrate with as many tools as
possible (CRM, ERP, mobile
applications, …)
Apache Unomi: an introduction I SnowCamp 2016 35
OASIS CONTEXT SERVER STANDARDWORK ORGANIZATION AND WORK DONE
https://www.oasis-open.org/committees/cxs/
PLEASE JOIN IF
YOU WANT TO
HELP
Whole TC meets once per month
2 workgroups meet once per week
CURRENT STATUSMEETINGS
⎯ Use case listing & discussions : completion
⎯ Domain model definition : undergoing
⎯ REST API : to be done
⎯ Formal specification : to be done
Apache Unomi: an introduction I SnowCamp 2016 36
Open-source to make it your own
APACHE UNOMI
Apache Unomi: an introduction I SnowCamp 2016 37
INCUBATORWHO TO BLAME! ☺
https://unomi.incubator.apache.org/
Champion Jean-Baptiste Onofré
Talend
Mentor Bertrand Delacretaz
Adobe
Mentor (Retired) Roman Shaposchnik
Pivotal
Mentor Chris Mattmann
NASA JPL
Apache Unomi: an introduction I SnowCamp 2016 38
COMMERCIAL APPLICATIONSCOMPLETELY GRATUITOUS PLUG
Build your own ! It’s the beauty of the Apache
License !
First (known) application Jahia Marketing Factory
Apache Unomi: an introduction I SnowCamp 2016 39 39
TAKING SOME RISKS, LIVE!
DEMO JAHIA MARKETING FACTORY + UNOMI
AN EXAMPLE APPLICATION
Apache Unomi: an introduction I SnowCamp 2016 40
YOUR TURN
HAVE YOU BEEN READING THESE?
Q & A
Apache Unomi: an introduction I SnowCamp 2016 41
LEARN MORE
THANK YOU SO MUCH FOR YOUR ATTENTION!
OASIS CXS standard https://www.oasis-open.org/committees/cxs/
Unomi incubator web site http://unomi.incubator.apache.org/
Unomi git repository https://git-wip-us.apache.org/repos/asf?p=incubator-unomi.git
Jahia Marketing Factory https://www.jahia.com/software/for-marketers/marketing-factory