Repository: incubator-unomi Updated Branches: refs/heads/master c58363029 -> 274dd8172
UNOMI-85 New home page Signed-off-by: Serge Huber <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-unomi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-unomi/commit/274dd817 Tree: http://git-wip-us.apache.org/repos/asf/incubator-unomi/tree/274dd817 Diff: http://git-wip-us.apache.org/repos/asf/incubator-unomi/diff/274dd817 Branch: refs/heads/master Commit: 274dd8172392cd348043be8e1e26f99f8a8cb34e Parents: c583630 Author: Serge Huber <[email protected]> Authored: Wed Feb 22 22:10:37 2017 +0100 Committer: Serge Huber <[email protected]> Committed: Wed Feb 22 22:10:37 2017 +0100 ---------------------------------------------------------------------- rest/pom.xml | 2 +- src/site/markdown/index.md | 149 +++++++------------ src/site/markdown/usecases.md | 85 +++++++++++ .../unomi-logical-architecture-diagram.png | Bin 0 -> 41571 bytes src/site/site.xml | 1 + 5 files changed, 143 insertions(+), 94 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/274dd817/rest/pom.xml ---------------------------------------------------------------------- diff --git a/rest/pom.xml b/rest/pom.xml index f91753e..f089dc0 100644 --- a/rest/pom.xml +++ b/rest/pom.xml @@ -167,7 +167,7 @@ </execution> </executions> <configuration> - <organizationId>c652adef-c7d3-41b5-a668-3a4d8fc2102e</organizationId> + <licence>cHJvamVjdHxvcmcuYXBhY2hlLnVub21pLnVub21pLXJlc3R8MjAyMC0wMi0yOHx0cnVlfC0xI01Dd0NGQ01pMDRxTFZ6LzJ4SG82MjAranZITnRLYWovQWhRcG4vS01jdTU2NXpOWkRpUzcwQXMrdC96bVdRPT0=</licence> <output> <title>Documentation for Apache Unomi's RESTful API ${project.version}</title> <html> http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/274dd817/src/site/markdown/index.md ---------------------------------------------------------------------- diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md index ec98be1..6c99d2c 100644 --- a/src/site/markdown/index.md +++ b/src/site/markdown/index.md @@ -17,76 +17,72 @@  -## A personalization and A/B testing open source server (with built-in privacy management) - -### In a few words - -Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to -integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, -native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing -and re-use in very different applications. - -Basically the server tracks users using different mechanisms (by default cookies), builds a progressively populated -profile and associates events that are performed by a user with his profile. Events may range from a click on a page, -to a file being downloaded, a native mobile application button being clicked, or anything that can be sent to the -server. - -The server has a built-in rule system that makes it possible to perform any action when an event is collected for -a profile. It also has the notion of user segments, making it possible to classify user profiles into dynamic - sub-groups, notably to build personalized experiences for specific segments. - -As Apache Unomi is built as an OSGi application running inside Apache Karaf, it is extremely extensible and built to -be scalable. For example it is possible to plugin new conditions, actions, or any other service that may be needed -such as beacon tracking or push notifications. +# The Open Source Customer Data Platform -Apache Unomi is also the reference implementation of the upcoming OASIS Context Server (CXS) standard -(https://www.oasis-open.org/committees/cxs/) to help standardize personalization of online experience -while promoting ethical web experience management and increased user privacy controls. - -### What is unique about Apache Unomi ? - -One of the most unique features of this server is its privacy management features. Using the privacy REST API, it is -possible for integrators to build user facing UIs that let them manage their profile, and control how they are being -tracked, what data has been collected and even anonymize previously collected data or future data ! Finally there is -even the possibility for end-users to delete their profile information completely. - -It is becoming more and more important to address privacy issues correctly, and it is even becoming more and more of -a legal issue since a lot of legislation is now appearing in many countries to make sure that user's right to privacy is -respected. - -Of course these possibilities have no default UI inside of Apache Unomi so it is left up to the developers to expose -them (or not). - -### Use cases +## Apache Unomi in one sentence +Apache Unomi is __a Java Open Source customer data platform__, a Java server designed to manage customers, +leads and visitorsâ data and help personalize customersâ experiences. -#### Use Apache Unomi as a personalization service for a Web CMS +## For developers +* Uses ElasticSearch for data storage, dynamic data structure +* Highly scalable architecture +* Very simple to deploy and install (simply unzip & run) +* Uses Apache Karaf as the OSGi runtime +* Full & simple REST API +* Extensible through plugin architecture (using OSGi & simple JSON descriptors) +* Apache Open Source project + +## For IT stakeholders and business users +* First-Party Data Collection and Ownership +* Persistent and consolidated profiles for all your audience (customers & leads), storing anonymous and personally +identifiable information +* Regulation-proof and privacy management built-in +* Real-Time Decisioning (Scoring logics, segmentation) +* Open standard, easy integration and extension + +## Why would you need a Customer Data Platform ? +Organizations collect data from multiple sources and channels - sales, web, emails, mobile, brick and mortar - and +all of this data is spread across different departments and technologies. As a result, many professionals are lacking +the data they need to do their job, especially data analysts and marketers. + +A customer data platform helps business users collect all the customer data in one place, providing a complete view +of the customers. When the data is collected, the customer data platform will also play a key role in choosing which +content or offer is more relevant to a customer. + +## The Apache Unomi advantage +Each organization is unique and will always have specific needs, this is why Apache Unomi has been designed to +be extended and to ease the integration of external data. The embedded features such as segmentation, scoring and +built-in privacy will be appreciated by business users while horizontal scalability and open source positioning will +be loved by developers and architects. -In this use case Apache Unomi is used to track all the users that visits the sites being managed by the CMS. The -sites may also contain personalized content elements that will use the profile information coming from Apache Unomi -to change their display based on the user. It will also send events (such as login events for example) back to the -server using simple AJAX calls to the Apache Unomi REST API. +Apache Unomi is also the reference implementation of the upcoming OASIS Context Server (CXS) standard +(https://www.oasis-open.org/committees/cxs/) to help standardize personalization of customer experience while promoting +ethical web experience management and increased user privacy controls. -The Web CMS can also build UIs to expose the privacy management feature to end-users of the platform, and will of -course build UIs to perform administration tasks such as profile, segments, goals, rules management. +## Business cases based on Unomi +* Build a web personalization software to adapt the content on your website to your audience +* Collect data from mobile application and feed Apache Unomi to track and understand your customersâ journeys +* Connect the beacons deployed in your stores to Apache Unomi and consolidate the profile of your customers and leads across all these channels +* Automatically push profiles from Apache Unomi to your CRM when a lead reach a given number of points in one of your scoring plans -#### Use Apache Unomi as an analytics service for a native mobile application +## Unomi logical architecture -In this case the server is used as a back-end for a native mobile application that will authenticate a user and then -send events to the server when the user performs certains tasks within the app. Tasks may include pressing a button, -getting close to a location (using GPS or beacons), etc... +All communication is done using HTTP REST requests and JSON data formats. -The application may also include a UI to expose the privacy management features of Apache Unomi. + -#### Use Apache Unomi as a centralized profile management system +## 5 Minute Quick start +1. Install JDK 8 (see [http://www.oracle.com/technetwork/java/javase/downloads/index.html](http://www.oracle.com/technetwork/java/javase/downloads/index.html) and make sure you set the JAVA_HOME variable [https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/](https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/) +2. Download ElasticSearch 5.1.2, for example using: -In this use case the server is used a centralized profile management system, making it easy to aggregate different -profile information that may be stored in different systems such as CRMs, Issue tracking systems, forums, CMS, ... -One way of achieving this is to make sure that "anonymous" profiles are merged when an event such as a login happens -and a unique cross-system identifier (usually the email address) is detected on each system. + curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz -In this case connectors to all the different systems will need to be developped (and hopefully contributed back to -the Apache Unomi community), so that the centralization of the information is managed by an Open Source and standards -compliant server community. +3. Edit the cluster.name in the `conf/elasticSearch.yml` file to `contextElasticSearch` +4. Download Apache Unomi here : [http://unomi.incubator.apache.org/download.html](http://unomi.incubator.apache.org/download.html) +5. Start it using : `./bin/karaf` +6. Wait for startup to complete +7. Try accessing [https://localhost:9443/cxs/cluster](https://localhost:9443/cxs/cluster) with username/password: karaf/karaf . You might get a certificate warning in your browser, just accept it despite the warning it is safe. +8. Request your first context by simply accessing : [http://localhost:8181/context.js?session=1234](http://localhost:8181/context.js?session=1234) ### News @@ -104,37 +100,6 @@ compliant server community. * [Introducing Apache Unomi, JavaOne 2015](http://www.slideshare.net/sergehuber/introducing-apache-unomi-javaone-2015-session) This presentation has a cool example of integrating Apache Unomi with IoT devices (Internet of Things) such as beacons, smartphones and even televisions * [Apache Unomi In-depth, ApacheCon EU 2015](http://www.slideshare.net/sergehuber/apache-unomi-in-depth-apachecon-eu-2015-session) -### Features - - - -* Simple entry-point to retrieve the profile context and collecting user-triggered events (page view, click, downloads, etc...) -* Full & simple REST API for Context Server administration -* Highly scalable architecture -* Fully OSGi compliant application -* Persistence & query layer uses ElasticSearch (other providers may be implemented in the future) -* Uses Apache Karaf as the OSGi runtime (supports both Apache Felix and Eclipse Equinox OSGi implementations) -* Very simple to deploy and install (simply unzip & run) -* Extensible through plugin architecture (using OSGi & simple JSON descriptors) - -### At a glance - - - -Unomi provides the context of the current user interacting with any Unomi-aware system. Using this context, Unomi-connected systems can -send events to the context server. These events might, in turn, trigger rules that perform actions that can update the current context, -interact with external systems or pretty much anything that can be implemented using the Unomi API. - -### Requirements - -* JDK 7 or later, http://www.oracle.com/technetwork/java/javase/downloads/index.html -* Maven 3.0+, http://maven.apache.org - -### Todo - -- Look at possible integration with newsletter management systems such as MailChimp, for example to synchronize profile data with collected info. -- Integrate with machine learning implementations such as Prediction.io or Apache Mahout - --- ### Disclaimer @@ -152,5 +117,3 @@ of the code, it does indicate that the project has yet to be fully endorsed by t Apache Karaf, Apache Mahout, Apache and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries. - - http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/274dd817/src/site/markdown/usecases.md ---------------------------------------------------------------------- diff --git a/src/site/markdown/usecases.md b/src/site/markdown/usecases.md new file mode 100644 index 0000000..9f181af --- /dev/null +++ b/src/site/markdown/usecases.md @@ -0,0 +1,85 @@ +<!-- + ~ Licensed to the Apache Software Foundation (ASF) under one or more + ~ contributor license agreements. See the NOTICE file distributed with + ~ this work for additional information regarding copyright ownership. + ~ The ASF licenses this file to You under the Apache License, Version 2.0 + ~ (the "License"); you may not use this file except in compliance with + ~ the License. You may obtain a copy of the License at + ~ + ~ http://www.apache.org/licenses/LICENSE-2.0 + ~ + ~ Unless required by applicable law or agreed to in writing, software + ~ distributed under the License is distributed on an "AS IS" BASIS, + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + ~ See the License for the specific language governing permissions and + ~ limitations under the License. + --> + +### In a few words + +Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to +integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, +native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing +and re-use in very different applications. + +Basically the server tracks users using different mechanisms (by default cookies), builds a progressively populated +profile and associates events that are performed by a user with his profile. Events may range from a click on a page, +to a file being downloaded, a native mobile application button being clicked, or anything that can be sent to the +server. + +The server has a built-in rule system that makes it possible to perform any action when an event is collected for +a profile. It also has the notion of user segments, making it possible to classify user profiles into dynamic + sub-groups, notably to build personalized experiences for specific segments. + +As Apache Unomi is built as an OSGi application running inside Apache Karaf, it is extremely extensible and built to +be scalable. For example it is possible to plugin new conditions, actions, or any other service that may be needed +such as beacon tracking or push notifications. + +Apache Unomi is also the reference implementation of the upcoming OASIS Context Server (CXS) standard +(https://www.oasis-open.org/committees/cxs/) to help standardize personalization of online experience +while promoting ethical web experience management and increased user privacy controls. + +### What is unique about Apache Unomi ? + +One of the most unique features of this server is its privacy management features. Using the privacy REST API, it is +possible for integrators to build user facing UIs that let them manage their profile, and control how they are being +tracked, what data has been collected and even anonymize previously collected data or future data ! Finally there is +even the possibility for end-users to delete their profile information completely. + +It is becoming more and more important to address privacy issues correctly, and it is even becoming more and more of +a legal issue since a lot of legislation is now appearing in many countries to make sure that user's right to privacy is +respected. + +Of course these possibilities have no default UI inside of Apache Unomi so it is left up to the developers to expose +them (or not). + +### Use cases + +#### Use Apache Unomi as a personalization service for a Web CMS + +In this use case Apache Unomi is used to track all the users that visits the sites being managed by the CMS. The +sites may also contain personalized content elements that will use the profile information coming from Apache Unomi +to change their display based on the user. It will also send events (such as login events for example) back to the +server using simple AJAX calls to the Apache Unomi REST API. + +The Web CMS can also build UIs to expose the privacy management feature to end-users of the platform, and will of +course build UIs to perform administration tasks such as profile, segments, goals, rules management. + +#### Use Apache Unomi as an analytics service for a native mobile application + +In this case the server is used as a back-end for a native mobile application that will authenticate a user and then +send events to the server when the user performs certains tasks within the app. Tasks may include pressing a button, +getting close to a location (using GPS or beacons), etc... + +The application may also include a UI to expose the privacy management features of Apache Unomi. + +#### Use Apache Unomi as a centralized profile management system + +In this use case the server is used a centralized profile management system, making it easy to aggregate different +profile information that may be stored in different systems such as CRMs, Issue tracking systems, forums, CMS, ... +One way of achieving this is to make sure that "anonymous" profiles are merged when an event such as a login happens +and a unique cross-system identifier (usually the email address) is detected on each system. + +In this case connectors to all the different systems will need to be developped (and hopefully contributed back to +the Apache Unomi community), so that the centralization of the information is managed by an Open Source and standards +compliant server community. http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/274dd817/src/site/resources/images/unomi-logical-architecture-diagram.png ---------------------------------------------------------------------- diff --git a/src/site/resources/images/unomi-logical-architecture-diagram.png b/src/site/resources/images/unomi-logical-architecture-diagram.png new file mode 100644 index 0000000..f7723d0 Binary files /dev/null and b/src/site/resources/images/unomi-logical-architecture-diagram.png differ http://git-wip-us.apache.org/repos/asf/incubator-unomi/blob/274dd817/src/site/site.xml ---------------------------------------------------------------------- diff --git a/src/site/site.xml b/src/site/site.xml index ed12046..8d32262 100644 --- a/src/site/site.xml +++ b/src/site/site.xml @@ -122,6 +122,7 @@ <item name="Cluster setup" href="versions/master/clustering.html" /> <item name="Concepts" href="versions/master/concepts.html"/> </item> + <item name="More use cases" href="usecases.html" /> <item name="REST API documentation" href="./rest-api-doc/index.html"/> <item name="API Javadoc" href="./unomi-api/apidocs/index.html"/> </menu>
