Introducing Apache Unomi - JavaOne 2015 Session

47
SERGE HUBER, CTO, [email protected] INTRODUCING APACHE UNOMI 1

Transcript of Introducing Apache Unomi - JavaOne 2015 Session

Page 1: Introducing Apache Unomi - JavaOne 2015 Session

SERGE HUBER, CTO, [email protected]

INTRODUCING APACHE UNOMI

1

Page 2: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

ABOUT MEONLY NARCISSIST SLIDE

2

Co-founder & CTO of Jahia

First time at JavaOne in 2001

Apache committer

Coder at heart

Page 3: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

INTRODUCING

GET TO KNOW ME

THE APACHE UNOMI CONTEXT SERVER

3

Page 4: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

A FRONT-END FOR USER CENTRIC

BIG DATA TECHNOLOGIES.

”WITH BUILT-IN DATA PRIVACY

ONE WAY TO LOOK AT ITAKA USING VERY BIG FONTS

4

Page 5: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE APPROACHWE ARE NOT ALONE

5

DATA PRIVACY

The Context Server Standard

Apache Unomi Reference Implementation

Two trusted, solid and recognized communities

Page 6: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

VITAL STANDARDIZATION

PROJECT

”LAURENT LISCIA, CEO OF OASIS

TESTIMONIALS I LOVE WHEN PEOPLE APPROVE

6

Page 7: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

EXPECTATIONS VS REALITYDO YOU REALLY KNOW ME ?

7

EXPECTATIONS REALITY

BI

SALES

SUPPORT

@

REPORT

CMS

ANALYTICS

CRM

ID

MA

?

Page 8: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

CLEAN & OPEN ARCHITECTURETHE BIG PICTURE

8

+

UNOMI CORECXSID directory

Segmentation Engine

Events

Tracking Engine

RESTFUL API

+

DATA

BA

CK

-EN

D

FR

ON

T-E

ND

+

Apache

BI

SALES

REPORT

ANALYTICS

CRM

ID

MA

Page 9: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 20159

USE CASES

REST API

DOMAIN MODEL Still on-going, join now to make it easier to fit with your solutions

CONTEXT SERVER SPECIFICATIONJOIN US NOW

Page 10: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

UNOMI FUNCTIONALITIES MORE THAN JUST KNOWING ME

10

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 exportReporting

Privacy management

Page 11: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

UNOMI ARCHITECTUREVIEW FROM THE HILL

11

APACHE KARAF

PERSISTENCE IMPLEMENTATION (ELASTICSEARCH, …)

PERSISTENCE SPI (SERVICE PROVIDER INTERFACE)

APACHE CXF

REST API

OSGI SERVICES

Page 12: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

INPUT/OUTPUTTALKING TO OTHERS

12

RULES

ACTIONS

Protocols HTTP REST + JSON

SEGMENTSEVENTS

CONTEXT

CONDITIONS

PROFILES

CONTEXT SERVER

BIG DATA FRAMEWORKS

Page 13: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

SCALABILITYFIGHTING BACK AT DENIAL OF SERVICES

13

CONTEXT SERVER CMS

Issue trackingCRMSocial

BIG DATA SYSTEMS

Page 14: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

ONE IMPORTANT THING

THE GOOD, THE BAD AND THE UGLY

PRIVACY

14

Page 15: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE BIG QUESTIONEXPRESSED IN CODING

15

privacy != cloud ?

Page 16: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

PRIVACY: DO IT ALL YOURSELFBECAUSE I’M ALWAYS RIGHT

16

Are you using recognized and safe standards?

Can you trust your software?

Is your network secure?

How do you protect against hackers?

How do you give users control over their data?

Can you trust your backups ?

Mobile support?

Page 17: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

PRIVACY : TRUSTING OTHERSWITH GREAT PRIVACY COMES GREAT RESPONSIBILITY

17

TRUST IS COMPLEX TRANSPARENCY

ETHICS

CONTROL

SECURITY

AUDITING

ACCESS

Page 18: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

YES, TRUST MATTERSEXAMPLES ARE TOO EASY TO FIND

18

Page 19: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

A CONTRADICTIONTHIS COULD KEEP YOU UP AT NIGHT

19

privacy != marketing?

Page 20: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

ONE EXAMPLESHARING A LITTLE TOO MUCH…

20

ONE WEBSITE 66 EXTERNAL TRACKERS

Page 21: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

DATA CONTROL LOSSSO MANY QUESTIONS

21

CustomersDATA

PRIVACY

What data is collected?

How is the data used?

Is opt-in or opt-out available?

Where is the data sent?

How is the sent data used?

Page 22: Introducing Apache Unomi - JavaOne 2015 Session

Workspace Factory Launch Presentation 1 24 August 201522

WHAT THEY REALLY DOMORE THAN WE THINK

Collect data

Send data to third parties

Mine data

Sell data analysisSome of this might be acceptable, but you need to

know about it and have some control over it

Page 23: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

UNOMI + OASIS CONTEXT SERVERNO UNILATERAL APPROACH HERE

23

OASIS Context Server Apache Unomi Others

Transparency Yes Yes NoREST API Yes Yes Yes

Community Growing Growing ?SSL Planned Yes Some

Open source Yes Yes NoFree Yes Yes No

Completed No No YesTechnology stack Any Java (OSGi) AnyVendor support Multiple Apache Community Yes

Released 2016 Very soon YesOn-premise Yes Yes Mostly no

Cloud Yes Yes MostOEM Available Yes Yes Probably not

Page 24: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 201524

23 APRIL 2014

12 JUNE 2015

23 SEPT 2015

5 OCT 2015

20 OCT 2015

APACHE STATUSI WANT IT ALL AND I WANT IT NOW

INCUBATION

ACCEPTED

Incubation vote closed, 8 binding

votes

INCUBATOR

PODLING

Resources created

INCUBATION

PROPOSAL

Submission as a new project

UNOMI

ANNOUNCED

Unomi publicly announced at

JahiaOne 2015

GITHUB INITIAL

IMPORT

Project got started directly under Apache

License

Page 25: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

COMMERCIAL APPLICATIONS MAKING MONEY WITH SOMETHING FREE

25

First (known) application:

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

License !

Angular UI built on top of Apache Unomi REST services

Page 26: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

CURRENT TRENDSISN’T SOMETHING MISSING?

26

Internet of Things

BigData?

Page 27: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE MISSING PIECEHEY LOOK WHAT I FOUND !

27

User ContextInternet

of ThingsBigData

Page 28: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE MISSING PIECEHEY LOOK WHAT I FOUND !

28

User ContextInternet

of ThingsBigData

Web browsers

Mobile devices

Page 29: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE MISSING PIECEHEY LOOK WHAT I FOUND !

29

User ContextInternet

of ThingsWeb browsers

Mobile devices

Apache Unomi

Page 30: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

THE MISSING PIECEHEY LOOK WHAT I FOUND !

30

User ContextInternet

of ThingsWeb browsers

Mobile devices

Apache Unomi

BigData

Page 31: Introducing Apache Unomi - JavaOne 2015 Session

A IOT SHOPPING EXAMPLEAKA AVOIDING BACK INJURIES

Workspace Factory Launch Presentation 1 24 August 201531

Improving shopping experience

Reduce health care costs

Brick-and-mortar to online digital transformation

Page 32: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

BEACON POSITIONINGPLANTING LITTLE WHITE BOXES

32

Great for indoor positioning

Page 33: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

EXAMPLE SCENARIOCAN WE LOWER HEALTH COSTS AT THE SAME TIME ?

33

1 2

3

Enter shop Browse soda aisle

Browse alcohol aisle

Digital signage in alcohol aisle

Remember: client has nothing in cart !

Page 34: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

INTERNET OF THINGS

LET’S TAKE SOME RISKS!

UNOMI INTEGRATION DEMO

34

Page 35: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

HOW IT WORKSI LOVE BEACON

35

Page 36: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

HOW IT WORKSRELAYING SIGNALS

36

Unomi Context Server

Content Server (Jahia Digital

Factory)

Push Notification service

Page 37: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

DIGITAL SIGNAGE UPDATESWATCHING TV CAN PAY SOMETIMES

37

Unomi Context Server

Page 38: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 201538

OCTOBER 5th,

2015

Project start after ApacheCon 2015

return

CODE, CODE,

CODE

Integration Apache Unomi

with all IoT devices & servers

OCTOBER 19th,

2015

Implementation completed

OCTOBER 26th,

2015

Demonstration and presentation

IMPLEMENTATION TIMELINECOME ON, GIVE ME ONE MORE WEEK!

Page 39: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

IMPLEMENTATION START POINT

Jahia Marketing Factory

1

2

3

1

2

3

Includes Apache Unomi

YOU ALWAYS NEED A PLACE TO START

Jahia Watcher Mobile App

Integrated with Digital Factory, but no support for

Unomi or beacons

Jahia Digital Factory

Content management system and main authentication

39

Page 40: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

IMPLEMENTATION TASKS MY PRETTY TO-DO LIST

40

Convert code to Swift 2.0

iBeacon self-training

Unomi native mobile integration

tvOS self-training

Unomi iBeacon plugin

Unomi iOS push notification plugin

Unomi Digital Signage plugin

tvOS Digital Signage App

New Context server settings screen

Privacy mobile app screen

Page 41: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

EXTENDING UNOMITHINKING OUTSIDE “OUT OF THE BOX”

41

iBeacon plugin

iOS Push notification plugin

Digital Signage plugin

Apache

Unomi Core

Public REST API

Admin

REST API

Page 42: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

BEACON UNOMI RULESYEAH I KNOW IT RULES

42

{ "metadata" : { "id": "alcoholicBeveragesInterestIncrement", "name": "Increment profile interests in alcoholic beverages", "description" : "Increment profile interests in alcoholic beverages" },

"raiseEventOnlyOnceForSession":false,

"condition" : { "type": "beaconInRangeEventCondition", "parameterValues": { "targetId" : "41692.37593" } },

"actions" : [ { "type": "incrementSpecifiedInterests", "parameterValues": { "interestsToIncrement" : { "alcoholicBeverages" : 1 } } } ]

}

Page 43: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

BEACON UNOMI RULESTHAT LAST ONE WAS LAME

43

{ "metadata" : { "id": "interestedInAcmeDrinks", "name": "Update digital signage and notify user interested in ACME drinks", "description" : "Update digital signage and notify user interested in ACME drinks" },

"condition" : { "parameterValues": { "subConditions":[ { "type": "profileInterestEventCondition", "parameterValues":{ "interestName":"alcoholicBeverages", "value":"10" } }, { "type": "profileInterestEventCondition", "parameterValues":{ "interestName":"nonAlcoholicBeverages", "value":"10" } } ], "operator" : "and" }, "type": "booleanCondition" },

"actions" : [ { "type": "setDigitalSignageProfile", "parameterValues": { } }, { "type": "sendNotification", "parameterValues": { } } ]

}

Page 44: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

TVOS CHALLENGESOTHERWISE IT WOULD JUST BE SO EASY

44

No web browser !

No push notifications !

Limited documentation

No hardware to test on (only simulator)

Still in beta

Page 45: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

WHERE ?LINKS

45

http://incubator.apache.org/projects/unomi.html

https://github.com/Jahia/unomi

Page 46: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

WHERE?MORE LINKS

46

https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cxs

jahia.com/products/marketing-factory

Page 47: Introducing Apache Unomi - JavaOne 2015 Session

Introducing Apache Unomi - JavaOne 2015 - October 26th 2015

Q & A

QUESTIONS & ANSWERSWAKE UP, IT’S YOUR TURN

47