Hi all,

Gently reminder, I "extend" the vote for 24 hours.

Regards
JB

On 09/23/2015 11:14 AM, Jean-Baptiste Onofré wrote:
Hi all,

following the discussion about Unomi, I would like to call a vote for
accepting Unomi as a new incubator project.

The proposal text is included below, and available on the wiki:
http://wiki.apache.org/incubator/UnomiProposal

The discussion thread about Unomi is available here:
http://mail-archives.apache.org/mod_mbox/incubator-general/201509.mbox/%3C36A4090C-7444-4A20-8C85-3C7B990D9502%40jahia.com%3E


The vote is open for 72 hours:

[ ] +1 accept Unomi in the Incubator
[ ] ±0
[ ] -1 (please give reason)

Thanks,
Regards
JB
--

= Apache Unomi incubation proposal =
== Abstract ==
Unomi is a reference implementation of the OASIS Context Server
specification currently being worked on by the OASIS Context Server
Technical Committee. It provides a high-performance user profile and
event tracking server.

== Proposal ==
The server is a data management platform that provides real-time user
profile and event storage as well as a rule engine and fully featured
REST+JSON interfaces which make integration with very different systems
easier.

One of the main objectives of this implementation is to be modular and
flexible enough to relatively easily build integration into systems such
as CMS, WCM, CRM or even ERP. Built using Apache Karaf and
ElasticSearch, it is designed to also be easily clusterable to address
high-traffic scenarios where lots of profile data will need to be
updated at a high frequency.

== Background ==
Unomi was built from scratch to serve as a reference implementation for
the OASIS Context Server proposal. It has been developed by Jahia Software.

It initially served as a test-bed while working on the specifics of the
new proposal, to make sure that the concepts being discussed and decided
would make sense in an actual implementation. At the same time, Jahia,
one of the companies involved in the standardization work, needed a
basis to build their new Marketing Factory product, so it made a lot of
sense to start this way. Thanks to a lot of work done in the standard,
the implementation was produced relatively quickly and this made it
possible to build a commercial product on top of this implementation
that will be released in Winter 2015. This implies that the core of the
commercial product being proposed here will undergo a full set of QA
tests, including and scalability tests.

Another important objective was to provide a platform that deals with
user data in an “ethical” way, in order to make the usage of personal
data more transparent and to improve privacy. Through the work in the
standard and this open source implementation, it is the hope of the
original designers that it will be easier for all users of this
technology to fully understand how the data is being used and what type
of control is exercised over it. A transparent usage of customer data
could become, in the near future, a key tool to keep customer loyalty.
Companies would then be able to leverage digital marketing frameworks
capabilities such as Unomi, but, as a fair - and quite possibly legally
mandatory - counterpart, should allow end users to understand the data
being used, as well as the way it is used, in order to give them more
control over which data to share or to anonymise.

The purpose is to bring Jahia Marketing Factory codebase into the Apache
Software Foundation (ASF) in order to build a vibrant, diverse and
self-governed open source community around the technology. Jahia will
continue to market and sell Jahia Marketing Factory based on Unomi.
Unomi and Jahia Marketing Factory will be managed separately. This
proposal covers the Unomi source code (mainly written in Java), Unomi
documentation and other materials currently available on GitHub. Unomi
is our primary choice for a name of the project.

== Rationale ==
Building highly scalable, performant and flexible personalization
architectures requires major efforts. The complexities of requirements,
integrations and use cases is directly related to the number of users,
and Apache projects usually get a lot of visibility and usage. Therefore
it was a goal from the start to share this project with the ASF, as it
is believed this is the best way to achieve the true potential of this
codebase, to make it highly visible and continually improve on its
design and implementation to make it the best tool for the job for a
wide variety of use cases.

The project, as it sits a bit higher than usual BigData frameworks,
could be used a front-end to a lot of existing Apache project that could
be integrated to help deliver more power into the platform. For example
Unomi doesn’t currently include machine learning but it could very well
be expanded to include a module that would use Apache Mahout. In the
same way, for the persistence layer, an already existing Service
Provider Interface could be used to provide other backends such as HDFS,
Cassandra, Solr or any other.

== Initial Goals ==
Our initial goals are to bring Unomi into the ASF, transition internal
engineering processes into the open, and foster a collaborative
development model according to the "Apache Way." Jahia plans to develop
new functionality in an open, community-driven way. To get there, the
existing internal build, test and release processes will be refactored
to support open development.

== Current Status ==
Currently, the project code base is licensed under the Apache License
and is available on Github (https://github.com/Jahia/unomi).

The Jahia Marketing Factory, as soon as it is released, plans on
building a robust end user community of paying and non-paying customers,
and hopefully this will trickle down to the community on the Apache
Unomi project once it is established.

Documentation is currently being worked on, but as it is the
implementation of a public standard, most of the conceptual and API
documentation will be covered by the specification. Any specifics of the
implementation will of course be documented in the incubator project

== Meritocracy ==
Our proposed list of initial committers include the current Marketing
Factory R&D team, Jahia Engineers. This group will form a base for the
broader community we will invite to collaborate on the codebase. We
intend to radically expand the initial developer and user community by
running the project in accordance with the "Apache Way". Users and new
contributors will be treated with respect and welcomed. By participating
in the community and providing quality patches/support that move the
project forward, they will earn merit. They also will be encouraged to
provide non-code contributions (documentation, events, community
management, etc.) and will gain merit for doing so. Those with a proven
support and quality track record will be encouraged to become committers.

== Community ==
If Unomi is accepted for incubation, the primary initial goal will be
transitioning the core community towards embracing the Apache Way of
project governance. We would solicit major existing contributors to
become committers on the project from the start.

== Core Developers ==
While a few core developers are skilled in working in openly governed
Apache communities. Most of the core developers are currently NOT
affiliated with the ASF and would require new ICLAs before committing to
the project.

== Alignment ==
The following existing ASF projects can be considered when reviewing
Unomi proposal:

* Apache Karaf : Apache Karaf is a small OSGi based runtime which
provides a lightweight container onto which various components and
applications can be deployed. Unomi is actually built on top of Karaf,
taking full benefit of its modularity and powerful features  as an OSGi
runtime. More subprojects could of the Karaf project could be integrated
such as Karaf Cave, Cellar or more interestingly Decanter which could
offer real-time insight into the Unomi runtime.
* Apache Mahout : The Apache Mahout™ project's goal is to build an
environment for quickly creating scalable performant machine learning
applications. Unomi could integrate with Mahout to use it to perform
recommendations or other types of machine learning based on what events
are being fed to it.
* Apache HadoopⓇ is a distributed storage and processing framework for
very large datasets focusing primarily on batch processing for analytic
purposes. Unomi could serve as a data set for Hadoop, and batch
processing could be done on top of this data.
* Apache CXF : Apache CXF is an open source services framework. CXF
helps you build and develop services using frontend programming APIs
like JAX-WS and JAX-RS. These services can speak a variety of protocols
such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety
of transports such as HTTP, JMS or JBI. Unomi actually uses CXF to
expose it’s services as pure HTTP REST+JSON services. But this could be
expanded further than what the specs supports to support other bindings
supported by CXF out of the box. Incubator Apache Pistachio
(http://wiki.apache.org/incubator/PistachioProposal) : Pistachio is a
fault-tolerant low latency distributed storage system which enables
simple embedding the computation to the storage layer to achieve best
data locality. It evolves from Yahoo’s global user profile storage
system. Unomi could possibly also use Pistachio as a backend system (if
compatible). This might provide an interesting alternative to
ElasticSearch for some users.
* Apache Geode : Geode is a data management platform that provides
real-time, consistent access to data-intensive applications throughout
widely distributed cloud architectures. Geode pools memory (along with
CPU, network and optionally local disk) across multiple processes to
manage application objects and behavior. It uses dynamic replication and
data partitioning techniques for high availability, improved
performance, scalability, and fault tolerance. Geode is both a
distributed data container and an in-memory data management system
providing reliable asynchronous event notifications and guaranteed
message delivery. Unomi could leverage the power of Geode to help it
with the processing of the incoming data from user events.
* Apache Ignite : Apache Ignite In-Memory Data Fabric is a
high-performance, integrated and distributed in-memory platform for
computing and transacting on large-scale data sets in real-time, orders
of magnitude faster than possible with traditional disk-based or flash
technologies. Unomi could leverage this project to perform any input
processing.

== Known Risks ==
Development has been sponsored mostly by a single company (or its
predecessors) thus far and coordinated mainly by the core Jahia Unomi team.

For the project to fully transition to the Apache Way governance model,
development must shift towards the meritocracy-centric model of growing
a community of contributors balanced with the needs for extreme
stability and core implementation coherency.

The tools and development practices in place for the Jahia Marketing
Factory product are compatible with the ASF infrastructure and thus we
do not anticipate any on-boarding pains. Migration from the current
GitHub repository is also expected to be straightforward.

== Orphaned products ==
Jahia is fully committed to Jahia Marketing Factory and the product will
continue to be based on the Unomi project. Moreover, Jahia has a vested
interest in making Unomi succeed by driving its close integration with
sister ASF projects. We expect this to further reduces the risk of
orphaning the product. Unomi is the core server at the heart of the
Jahia Marketing Factory product, and at the time of this proposal both
the commercial offering server and Unomi source code are 100% the same.
It is expected over time that Jahia will develop additional modules on
top of Unomi that may not be open sourced but other companies may of
course do the same thing.

== Inexperience with Open Source ==
Jahia has been developing and using open source software since its
inception in 2001. Jahias CTO and Chief Software Architects are Apache
Committers and other employees have contributed to various ASF projects
over the years. Additionally, several ASF veterans agreed to mentor the
project and are listed in this proposal. The project will rely on their
guidance and collective wisdom to quickly transition the entire team of
initial committers towards practicing the Apache Way.

== Homogeneous Developers ==
While most of the initial committers are employed by Jahia, we have
already seen a healthy level of interest from our existing customers and
partners. We intend to convert that interest directly into participation
and will be investing in activities to recruit additional committers
from other companies.

== Reliance on Salaried Developers ==
Most of the contributors are paid to work in web marketing/web content
management space. While they might wander from their current employers,
they are unlikely to venture far from their core expertises and thus
will continue to be engaged with the project regardless of their current
employers.

== Relationships with Other Apache Products ==
As mentioned in the Alignment section, Unomi may consider various
degrees of integration and code exchange with Apache Karaf, Apache
Mahout, Apache Pistachio (incubating), and many others. We look forward
to collaborating with these communities as well as other communities
under the Apache umbrella.

== An Excessive Fascination with the Apache Brand ==
While we intend to leverage the Apache ‘branding’ when talking to other
projects as testament of our project’s ‘neutrality’, we have no plans
for making use of Apache brand in press releases nor posting billboards
advertising acceptance of Unomi into Apache Incubator.

== Interaction with the OASIS standard ==
In order to properly implement the standard and possibly use the
feedback from the implementation as a way to improve the specifications,
currently the co-chair of the technical committee is also the proposer
on the Apache proposal. This relationship makes it easy for
communication between the two works, and will hopefully grow as the
community grows around both the standard and the implementation. This is
quite similar to the situation with the Apache Chemistry project, that
is an open source implementation of the CMIS specification that is also
an OASIS standard.

== Documentation ==
See documentation for the current state of the project documentation
available as part of the GitHub repository at
https://github.com/Jahia/unomi

== Initial Source ==
Jahia is releasing the source code for Unomi under the ASF license at
https://github.com/Jahia/unomi . We encourage ASF community members
interested in this proposal to download the source code, review and try
out the software.

== Source and Intellectual Property Submission Plan ==
As soon as Unomi is approved to join Apache Incubator, the source code
will be transitioned via the Software Grant Agreement onto ASF
infrastructure and in turn made available under the Apache License,
version 2.0. We know of no legal encumberments that would inhibit the
transfer of source code to the ASF.

== External Dependencies ==
Embedded dependencies (relocated):

* None

Runtime dependencies:

* apache-karaf
* pax-web
* apache-cxf
* slf4j
* org.apache.httpcomponents:httpclient-osgi
* org.apache.httpcomponents:httpcore-osgi
* org.apache.servicemix.bundles.jakarta-regexp
* pax-cdi
* javax.servlet-api
* jackson
* org.osgi.core
* commons-lang3
* commons-collections
* org.mvel:mvel2
* commons-beanutils
* commons-ognl
* commons-email
* commons-logging
* commons-codec
* commons-io
* geronimo-jcdi
* geronimo-atinject
* geronimo-annotations
* string-template (BSD)
* javax.json
* net.sf.uadetector
* net.sf.quality-check
* com.maxmind.geoip2:geoip2 (Commons Commons Attribution-ShareAlike 3.0
Unported, http://dev.maxmind.com/geoip/geoip2/geolite2/#License)
* elasticsearch
* spatial4j (optional)
* org.ow2.asm:asm
* groovy (optional)
* com.vividsolutions:jts (lgpl, optional)
* net.java.dev.jna (optional)
* org.fusesource:sigar (optional)

Module or optional dependencies:

* None

Build only dependencies:

* None

Test only dependencies:

* org.ops4j.pax.exam:pax-exam-container-karaf
* org.ops4j.pax.exam:pax-exam-junit4
* org.ops4j.pax.exam:pax-exam
* org.ops4j.pax.url:pax-url-aether
* javax.inject
* junit
* com.carrotsearch:junit-benchmarks
* com.h2database:h2
* gatling
* scala library

Cryptography N/A

== Required Resources ==
=== Mailing lists ===
* priv...@unomi.incubator.apache.org (moderated subscriptions)
* comm...@unomi.incubator.apache.org
* d...@unomi.incubator.apache.org
* iss...@unomi.incubator.apache.org
* u...@unomi.incubator.apache.org

=== Git Repository ===
* https://git-wip-us.apache.org/repos/asf/incubator-unomi.git

=== Issue Tracking ===
* JIRA Project Unomi (UNOMI)

=== Other Resources ===
Means of setting up regular builds for Unomi on builds.apache.org

== Initial Committers ==
* Serge Huber
* Thomas Draier
* Sergiy Shyrkov
* Kevan Jahanshahi
* Cédric Mailleux
* Régis Mora
* Quentin Lamerand
* Chris Laprun
* David Griffon
* Jean-Baptiste Onofré

== Affiliations ==
* Jahia Solutions: everyone else on this proposal
* NASA JPL: Chris Mattmann
* Talend : Jean-Baptiste Onofré
* Pivotal : Roman Shaposhnik

== Sponsors ==
== Champion ==
* Jean-Baptiste Onofré - Apache Member, Talend

== Mentors ==
The initial mentors are listed below:

* Bertrand Delacretaz - Apache Member, Adobe
* Roman Shaposhnik - Apache Member, Pivotal
* Chris Mattmann - Apache Member, NASA JPL

== Sponsoring Entity ==
We would like to propose Apache incubator to sponsor this project.

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org


--
Jean-Baptiste Onofré
jbono...@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to