incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "TempoProposal" by TonyFaustini
Date Fri, 04 Dec 2015 00:44:33 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "TempoProposal" page has been changed by TonyFaustini:
https://wiki.apache.org/incubator/TempoProposal

New page:
= Tempo Proposal =

== Abstract ==

The Apache Foundation has been very successful in bringing together
key software components that have enabled people to interact with each
other via a variety of content platforms and it will no doubt continue
to do so.  At the same time modern society is becoming increasingly
dependent on devices that interact with each other and with people.
The amount of data that will be produced by devices will be orders of
magnitude greater than what has been produced by humans in the past.
In addition, the orchestration of devices and people will be an
important area of growth for the foreseeable future. This new dynamic
will eventually become manifest in a growing number of Apache projects
that enable this to occur. Our wish is to contribute to this movement
by contributing the Tempo system to the Open Source Community via the
Apache Foundation. Tempo is an open platform to interconnect any and
all devices, sensors, people, and applications, henceforth referred to
as points, through a scalable, secure, and modular architecture,
enabling applications to generate analysis, create actions and/or add
intelligence to their behaviors and patterns.

== Proposal ==

Perhaps you are a homeowner configuring the interaction between your
family and all the smart devices in your home. Or you might be a
global company orchestrating millions of devices and people across
different continents.  Either way you face the same fundamental
problem; namely, how do you manage many points in a secure robust and
meaningful manner?  Tempo is an open source software system that
enables homeowners and global companies to download a software system
that provides secure and robust orchestration.

The Tempo system consists of a variety of components:

   * A basic but extensible desktop
   * An extensible mechanism for capturing data from a variety of sources
   * A set of translators that feed the data capture mechanism and a framework for the development
of additional translators
   * A secure means of moving data using digital envelopes based on symmetric and asymmetric
encryption and decryption via Apache Kafka
   * Optionally maintaining data encrypted in a datastore
   * Support for a variety of data repositories
   * Authentication and authorization using oAuth2
   * Secure APIs for access to data and the system information
   * User management
   * Device management
   * Automated software upgrades via Salt
   * Configuration management
   * Robust basic infrastructure based on Apache Mesos that enables scalability
   * Dockerized applications

== Background ==

We are in the midst of a revolution in which the Internet of Things
(IoT) is poised to impact the development of our society in ways we
can not even begin to imagine. Unfortunately, we know of no coherent
OSS (Open Source Software) solution that can harness the
potentialities of this increasingly important trend. Manufacturers of
IoT devices, both in the consumer and industrial spaces, continue to
develop proprietary systems. Tempo is an open source IoT system that
creates an open source solution enabling the orchestration of IoT
devices that brings the benefits of OSS to this space. Tempo was
initially developed by Litbit and is deployed in a growing number of
Industrial contexts, especially in the context of Data Center
Infrastructure.

== Rationale ==

Tempo is a general platform for orchestrating IoT devices in both
consumer and industrial contexts. It is complementary to the existing
Apache projects and is itself built using of a number of Apache
projects.  Bringing Tempo into Apache is very beneficial to both the
Apache community and the IoT community.

The rapid growth of IoT needs to be harnessed in the Open Source
Community. We believe the Apache Foundation is a great fit as the
long-term home for Tempo, as it provides an established process for
community-driven development and decision making by consensus. This is
exactly the model we want for future Tempo development.

== Initial Goals ==

   * Move the existing codebase to Apache 
   * Integrate with the Apache development process
   * Ensure all dependencies are compliant with Apache License version 2.0
   * Incremental development and releases per Apache guidelines

== Current Status ==

Tempo has undergone a major release (0.1) and is being used in
production by several global organizations. The Tempo codebase is
currently hosted at github.com, which will seed the Apache git
repository.

=== Meritocracy ===

We plan to invest in supporting a meritocracy. We will discuss the requirements in an open
forum. Several companies have already expressed interest in this project, and we intend to
invite additional developers to participate. We will encourage and monitor community participation
so that privileges can be extended to those that contribute. 

=== Community ===

The need for an open source IoT orchestration system is tremendous. Tempo is currently being
used by several organizations worldwide. By bringing Tempo into Apache, we believe that the
community will quickly grow and become a significant Apache offering.

=== Core Developers ===

Tempo was initially developed at Litbit by the following individuals:

   * Rutvij Clerk
   * Miron Costant
   * Tony Faustini
   * Reza Hajebi
   * Amirhossein Jabbari
   * Shahin Mowzoon
   * Scott Noteboom
   * Sydney Noteboom
   * Omkar Prabhu
   * Don Shields

=== Alignment ===

IoT orchestration is in need of an Open Source Solution. We believe
Tempo can be that solution and fill this need  in the Apache
Foundation's offerings. We believe that Tempo will remove the barriers
imposed by proprietary solutions and usher in significant growth for
the Apache Foundation. The alignment is also beneficial to other
Apache communities (such as Zookeeper, Kafka, and Mesos). We could
include additional sub-projects in the future. 

== Known Risks ==

=== Orphaned Products ===

There will be an initial need to ensure the availability and
robustness of an initial offering so that contributors and users are
highly incentivized to continue development. To this  extent,
organizations can be encouraged to build critical business
applications around Tempo and the risk of the project being abandoned
will be minimized.

=== Inexperience with Open Source ===

Our lack of experience with Open Source is an area we will need
significant accompaniment with. We are more than willing to invest
time and resources to create a healthy open source project. During
that time, we will curate an open-source community and attract growing
numbers of developers from a diverse group of contributors.

=== Homogenous Developers ===

The initial committers will be from Litbit, a well funded startup. We
plan to grow Tempo with an active community of developers, and we are
committed to recruiting additional committers based on their
contributions to the project.
  
=== Reliance on Salaried Developers ===

It is expected that Tempo development will occur on both salaried time
and on volunteer time, after hours. The majority of initial committers
are paid by Litbit to contribute to this project. However, they are
all passionate about the project, and we are confident that the
project will continue even if no salaried developers contribute to the
project. We are committed to recruiting additional committers
including non-salaried developers.

=== Relationships with Other Apache Products ===

As mentioned in the Alignment section, Tempo is closely integrated
with Zookeeper, Kafka, and Mesos. We look forward to collaborating
with those communities, as well as other Apache communities.
 
=== An Excessive Fascination with the Apache Brand ===

Tempo will become a healthy and well known open source project. This
proposal is not for the purpose of generating publicity. Rather, the
primary benefits to joining Apache are those outlined in the Rationale
section.

== Documentation ==

The reader will find these websites highly relevant:

   * Tempo website: Coming soon
   * Tempo documentation: Coming soon
   * Codebase: Becoming public soon
   * User group: Coming soon

== Source and Intellectual Property Submission Plan ==

The Tempo codebase is currently hosted on Github. To give you some
idea of what we will be contributing here are some basic statistics
from our current Github

OAuth Server
   * 30 text files.
   * 30 unique files.
   * 5 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.17 s (168.9 files/s, 101341.2 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code'' ||
|| ''CSS'' || 7 || 2724 || 70 || 12148 ||
|| ''Javascript'' || 5 || 144 || 254 || 1054 ||
|| ''Python'' || 14 || 73 || 60 || 129 ||
|| ''HTML'' || 2 || 15 || 7 || 119 ||
|| '''SUM''' || '''28''' || '''2956''' || '''391''' || '''13450''' ||

Data Server
   * 21 text files.
   * 20 unique files.
   * 9 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.08 s (208.7 files/s, 19657.5 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code''
|| ''Python'' || 15 || 196 || 290 || 829 ||
|| ''make'' || 1 || 30 || 6 || 156 ||
|| '''SUM''' || '''16''' || '''226''' || '''296''' || '''985''' ||

Management Server
   * 114 text files.
   * 110 unique files.
   * 16 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.40 s (260.1 files/s, 59749.4 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code'' ||
|| ''CSS'' || 7 || 2724 || 70 || 12148 ||
|| ''Python'' || 31 || 757 || 340 || 3203 ||
|| ''HTML'' || 61 || 383 || 32 || 2823 ||
|| ''Javascript'' || 5 || 144 || 254 || 1054 ||
|| ''make'' || 1 || 30 || 6 || 156 ||
|| '''SUM''' || '''105''' || '''4038''' || '''702''' || '''19384''' ||

Data Pipeline
   * 81 text files.
   * 81 unique files.
   * 26 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.32 s (177.3 files/s, 15377.2 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code'' ||
|| ''Java'' || 54 || 609 || 909 || 2915 ||
|| ''Maven'' || 1 || 16 || 24 || 408 ||
|| ''XML'' || 2 || 0 || 1 || 63 ||
|| '''SUM''' || '''57''' || '''625''' || '''934''' || '''3386''' ||

Orchestration
   * 5 text files.
   * 5 unique files.
   * 3 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.03 s (90.1 files/s, 32463.5 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code'' ||
|| ''Python'' || 3 || 113 || 78 || 890 ||
|| '''SUM''' || '''3''' || '''113''' || '''78''' || '''890''' ||

Data Collector
   * 13 text files.
   * 12 unique files.
   * 4 files ignored.

http://cloc.sourceforge.net v 1.64  T=0.04 s (256.8 files/s, 18873.7 lines/s)

|| ''Language'' || ''files'' || ''blank'' || ''comment'' || ''code'' ||
|| ''Cython'' || 1 || 50 || 49 || 318 ||
|| ''Python'' || 8 || 56 || 40 || 220 ||
|| ''Bourne Shell'' || 1 || 0 || 0 || 2 ||
|| '''SUM''' || '''10''' || '''106''' || '''89''' || '''540''' ||

This is the exact codebase that we would migrate to the Apache foundation.

Upon entering Apache, Tempo will migrate to an Apache License 2.0 with
all contributions licensed to the Apache Foundation. In certain cases
if individuals or organizations hold copyright, we will ensure they
grant a license to the Apache Foundation. Going forward, all commits
will be licensed directly to the Apache foundation through our signed
Individual Contributor License Agreements for all committers on the
project.

Upon entering Apache, Litbit will sign over copyright to the Apache foundation.

== External Dependencies ==

To the best of our knowledge, all of Storm dependencies (except 0MQ/JMQ) are distributed under
Apache compatible licenses. Upon acceptance to the incubator, we would begin a thorough analysis
of all transitive dependencies to verify this fact and introduce license checking into the
build and release process (for instance integrating Apache Rat). 

Storm has used 0MQ and JMQ as the default mechanism for internal messaging layer, and 0MQ/JMQ
is licensed under GNU Lesser General Public License. Recently, we have made Storm messaging
layer pluggable, and plan to use Netty (which is licensed under Apache License v2) as our
default messaging plugin (while keep 0MQ as an optional plugin).  

== Cryptography ==

We do not expect Tempo to be a controlled export item due to the use
of encryption. Tempo enables encryptions via a digital envelope using:

 * RSA 128 Bits
 * AES 128 Bits

== Required Resources ==

=== Mailing lists ===

 * tempo-user
 * tempo-dev
 * tempo-commits
 * tempo-private (with moderated subscriptions)

=== Subversion Directory ===

Git is the preferred source control system: git://git.apache.org/tempo


=== Issue Tracking ===

JIRA Tempo (TEMPO)

== Initial Committers ==

   * Rutvij Clerk <rutvij at litbit dot com>
   * Miron Costant <miron at litbit dot com>
   * Tony Faustini <tony at litbit dot com >
   * Reza Hajebi <reza at litbit dot com>
   * Amirhossein Jabbari < amirhossein at litbit dot com>
   * Shahin Mowzoon <shahin at litbit dot com>
   * Scott Noteboom < notebooms at litbit dot com>
   * Sydney Noteboom <sydney at litbit dot com>
   * Omkar Prabhu <omkar at litbit dot com >
   * Bill Salter <bsalter at enviseco dot com >
   * Don Shields <dshields at litbit dot com >

== Affiliations ==

   * Rutvij Clerk - Litbit
   * Miron Costant - Litbit
   * Tony Faustini - Litbit
   * Reza Hajebi - Litbit
   * Amirhossein Jabbari - Litbit
   * Shahin Mowzoon - Litbit
   * Scott Noteboom - Litbit
   * Sydney Noteboom - Litbit
   * Omkar Prabhu - Litbit
   * Bill Salter - Envise
   * Don Shields - Litbit

== Sponsors ==


=== Champion ===

   * TBD

=== Nominated Mentors ===

   * TBD

=== Sponsoring Entity ===

 The Apache Incubator

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message