You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@incubator.apache.org by Apache Wiki <wi...@apache.org> on 2017/03/25 18:12:22 UTC

[Incubator Wiki] Update of "DianaProposal" by Otavio Santana

Dear wiki user,

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

The page "DianaProposal" has been deleted by Otavio Santana:

https://wiki.apache.org/incubator/DianaProposal?action=diff&rev1=5&rev2=6

Comment:
Project moving to Eclipse Foundation

- ## page was renamed from CategoryHomepage
- = Apache Diana =
  
- ==== Why Diana? ====
- 
- In Roman mythology, Diana was the goddess of the hunt, the moon and nature being associated with wild animals and woodland, and having the power to talk to and control animals. She was eventually equated with the Greek goddess Artemis, though she had an independent origin in Italy. Diana was worshipped in ancient Roman religion and is revered in Roman Neopaganism and Stregheria. Diana was known to be the virgin goddess of childbirth and women. She was one of the three maiden goddesses — along with Minerva and Vesta — who swore never to marry.
- 
- In Java, it is the API for NoSQL database persistence. Basically Diana gonna be an abstract API to communicate a Java application to several NoSQL database.
- 
- 
- 
- ==== Abstract ====
- 
- Apache Diana is a flexible and extensible API to connect NoSQL databases. It brings an easy interface to support key-value, column family, document oriented and graph databases as JDBC is for SQL databases.
- 
- 
- ==== Proposal ====
- 
- The basic building blocks hereby are:
- 
-  * A simple API to support Column NoSQL Database
-  * A simple API to support Key-value NoSQL Database
-  * A simple API to support Graph NoSQL Database
-  * A simple API to support Document Database
-  * Convention over configuration
-  * Support for asynchronous queries
-  * Support for asynchronous write operations
-  * An easy API to implement, so that NoSQL vendors can comply with it  and test by themselves.
- 
- 
- The API's focus is on simplicity and ease of use. Developers should only have to know a minimal set of artifacts to work with the solution. The API is built on latest Java 8 features and therefore fit perfectly with the functional features of Java 8. 
- 
- Additionally, Apache Diana will provide 
- 
-  * A Java SE based implementation with minimal features and dependencies. 
-  * A Java EE extension module for integration with Java EE
-  * Once Java ME supports Lambdas, default methods, method references and functional interfaces, an implementation targeting Java ME should be provided as well. 
-  * Extension modules for different features. 
- 
- ==== Background ====
- 
- There is a global initiative running now (as of July/2016), for about a year, lead by Otavio Santana to standardize NoSQL persistence in Java EE and SE. Due to several reasons, it seems most sensible to start an OSS project on the topic to join forces that actively want to contribute to the project. It is highly probable that standardization will be started through this apache project.
- 
- 
- ==== Initial Goals ====
- 
- The initial goals of the Apache Diana project are to:
- 
-  * Receive code donations from https://github.com/JNOSQL
-  * Setup the governance structure of the project
-  * Ensure all donated code is appropriately licensed under the Apache License
-  * Define the project modules and structure (API, implementation modules (initially for NoSQL databases, adapter modules, examples)
-  * Provide examples demonstrating feature usage
-  * Produce releases based on a schedule created by the PMC
-  * Attract contributions from the greater Java community
-  * Setup collaboration with other projects and the JCP to bring in ideas and enhancement proposals, e.g. to Java EE 9
- 
- 
- ==== Meritocracy ====
- 
- We plan to do everything possible to encourage an environment that supports meritocracy. We did the same with JSR 354, where people throughout the world helped us get the RI/TCK to a very good level. Similarly, whenever possible, we encouraged people to join the expert group, so they also would be capable of contributing to the API directly. In all cases we discussed all questions and feedback transparently, regardless if it was an EG member or just a member of one Hackday or Hackergarten.
- 
- ==== Community ====
- 
- The project initiative already is significantly supported by JUGs such as SouJava, JavaBahia, LJC, iJUG, Berlin Brandenburg JUG, JUG Zurich, as well as companies such as ToolsCloud, GlobalCode, Jelastic. It is expected that support will raise very quickly so the library will evolve and be widely used as well.
- 
- ==== Homogenous Developers ====
- 
- The current list of committers includes developers from several different companies plus many independent volunteers. The committers are geographically distributed across the U.S., Brazil, Europe, and Asia. They are experienced with working in a distributed environment.
- 
- 
- ==== Relationships with Other Apache Products ====
- 
- The project's core API will be independent of any other projects:
- 
-  * The API should be implementable by different providers, mainly NoSQL vendors, and  easily tested by TCK.
-  * The API should if possible have minimal dependencies (or even be standalone), so it is highly portable to different environments.
-  * Apache Diana will provide a minimal standalone implementation as well. Nevertheless it will be possible that other databases implement the API as well, e.g. Apache Commons Configuration (especially version 2).
- 
- 
- Diana will also provide adapter modules for other technologies/projects, so the solution can inter-operate with existing frameworks and solutions as a provider similarly. This explicitly also includes the possibility to use Diana as a driver communication source for.
- 
-  * Spring Data
-  * Hibernate OGM
-  * Eclipse TopLink
- 
- ==== An Excessive Fascination with the Apache Brand ====
- 
- While we expect the Apache brand may help attract more contributors, our interests is in establishing a powerful and widely used standard for NoSQL driver. At a later stage, if successful, standardizing it within a JSR also may be an option. We believe this process starts with growing a strong and self-managed community that can someday lead the charge in any future standardization efforts. Furthermore, we have been enthusiastic users of Apache and feel honored at getting the opportunity to join and learn.
- 
- ==== Documentation ====
- 
-  * Let's talk about standard to NoSQL database in Java: https://goo.gl/RsKRjt
-  * More details about API:  https://goo.gl/lUixCh
-  * Presentation about Diana: https://goo.gl/ZUBNtg
- 
- Links to some other existing solutions:
- 
-  * Spring Data http://projects.spring.io/spring-data/
-  * Hibernate ogm: http://hibernate.org/ogm/
-  * Eclipselink: http://www.eclipse.org/eclipselink/
-  * Jdbc-json https://github.com/jdbc-json/jdbc-cb
-  * Simba http://www.simba.com/drivers/
-  * Tinkerpop http://tinkerpop.apache.org/
- 
- 
- 
- ==== External Dependencies ====
- 
- The following external dependencies have been identified:
- 
- The core functionality will be dependent on/use
- 
-  * Apache Maven - Java based build tool - Apache License 2.0, (non-runtime)
-  * Shrinkwrap - Java deployment packaging - Apache License 2.0 (non-runtime)
-  * Apache Bval - Apache License 2.0 (non-runtime)
-  * Apache openwebbeans - Apache License 2.0 (non-runtime)
-  * Apache Commons - Apache License 2.0 (non-runtime)
-  * Apache Collections -  Apache License 2.0 (non-runtime)
-  * Apache IO -  Apache License 2.0 (non-runtime)
-  * Apache Tinkerpop -  Apache License 2.0 (non-runtime)
- 
- 
- ==== Cryptography ====
- 
- The framework will not bring along additional cryptographic algorithms.
- 
- ==== Required Resources ====
- 
- The project's build currently is based on Maven, it might be moved to gradle.
- Continuous build and integration is important. Depending on the integration and third party solutions/versions supported this may require several external solutions to be loaded. All of them must be available as OSS projects or freely accessible.
- Continuous quality control with SonarSource would be important as well to guarantee very high quality. This is important to have a good adoption rate as well.
- 
- ==== Core Developers ====
- 
- The core team will be a set of well known experts from the Java SE and EE area (in random order):
- 
-  * '''Anatole Tresch''' is employed at Credit Suisse. He leads JSR 354 (Money & Currency) and also was planned as cospec lead for Java EE configuration JSR together with Oracle. He also is a member of the CDI 2.0 expert group and is actively driving the configuration topic.
-  * '''Werner Keil''' aka "Java Godfather" is individual JCP EC member and member of the  Developer Week Advisory Board. He's  contributing to several JSR's in the ME, SE and EE space. He is a Spec Lead in the Units of Measurement JSR. Werner is already a committer/PMC member of ASF projects and member of the Java EE Guardians.
-  * '''Otávio Gonçalves de Santana''' Otávio Santana (@otaviojava) is a developer and enthusiast of open source. He is an evangelist and practitioner of agile philosophy and polyglot development in Brazil. Otávio is a JUG leader of JavaBahia and SouJava, and a strong supporter of Java communities in Brazil, where he also leads the BrasilJUGs initiative to incorporate Brazilian JUGs into joint activities. In the open source world, Otávio is a developer in OpenJDK and a creator of Easy-Cassandra. He has also helped in JBoss Weld, Hibernate, Apache Commons, and other open source projects. Otávio is a very active speaker in Brazil, where he has participated in the largest Java events in the country. As an international speaker, Otávio has presented in JavaOne and the Cassandra tour events. Otávio is also a writer, and has many articles and even a book on JVM Internals. Otávio Santana actually means “make the future Java”, working in several Java Specification Request (JSR), as Java Expert team. Otávio was recently nominated and won the JCP's Outstanding Adopt-a-JSR Participant of the Year award, Java Champion, Duke Choice Award for his very active role several JSRs, OpenJDK and community.
-  * '''Luca Garulli''' is the original author of the OrientDB product. He started working with storage algorithms in 1998 and created the first production-ready version of multi-model OrientDB in early 2010 after 17 years of experience creating DBMSs. Luca is a member of the Sun Microsystems JDO 1.0 and 2.0 Expert Groups that wrote the JDO standard
-  * '''Oliver B. Fischer''' is Senior Software Engineer at E-Post Development GmbH in Berlin. He is an active Apache committer and contributes to a range of Open Source projects. He also publishes widely in peer-reviewed journals and magazines with a strong focus on Java. He is passionate about innovative systems and ideas, especially in connection with Java but with increasing emphasis on DevOps-related topics. Oliver leads the Java Usergroup Berlin-Brandenburg and helps organise several conferences.
-  * '''Gerald Sangudi''' leads the Query Engineering team at Couchbase, which is creating N1QL, the upcoming query language and engine for the Couchbase distributed document database. Gerald has been building enterprise software for over 20 years. He started out building data mining and visualization software at Silicon Graphics, and went on to build more software at VMware, Healtheon/WebMD, Yahoo!, Loopt, and 23andMe. He studied Computer Science and Engineering at MIT, and holds several patents.
-  * '''Prasad Varakur Prasad Varakur''' is principle product manager at  Couchbase, and comes with over 17years of database internals DNA. Prior to Couchbase, he was Director of Strategy at Huawei R&D leading cloud, containers, and big-data technologies. He was also Sr. Architect for Huawei’s internal NewSQL cluster database, built to deliver high performance SQL queries on peta bytes of data. He was part of core team at Sybase/SAP building ASE database Cluster server for 10 years, and has built storage servers at EMC and Novell.  Prasad holds Master’s degree in computer science from Indian Institute of Technology(IIT – Kanpur), and his thesis contributed foundational research works of Parametric Query Optimization techniques. He holds several patents in distributed systems and database internals.
-  * '''Christoph Engelbert''' is a passionated Java geek with a deep commitment for Open Source software. He is mostly interested in Performance Optimizations and understanding the internals of the JVM and the Garbage Collector. He loves to bring software to it's limits by looking into profilers and finding problems inside of the codebase. In addition he is highly interested in new ideas, technologies and new ways of solving problems. He has a deep understanding of IP based technologies like Protocol Stacks, TCP, UDP and asynchronous service implementations and fast serialization solutions. Normally he doesn't like to reinvent the wheel but if there is a reason and a chance to make it faster or easier to use he still does it.
-  * '''Johan Larson''': Johan studied databases at the University of Wisconsin under Drs. David Dewitt and Goetz Graefe, ultimately writing his doctoral dissertation on a technique for paginating SQL queries. After finishing studies in 2001, he worked in a number of positions, starting in database engineering for a couple of startups in the Bay area. He also worked on a search engine at Open Text and on ad servers at Google. Since 2015, he is at Couchbase working on the N1QL query engine and he is the core contributor to the  JDBC-JSON open source project  (www.github.com/jdbc-json).
-  * '''Daniel Cunha''' is passionate about software development and a firm believer in Open Source community membership. His enthusiasm for Open Source and Java motivated him to become a committer to projects like DeltaSpike, Yougi, Lightweight EE, and JBoss Aesh. He contributes to Tomitribe, JBoss, Spring, VRaptor, and Caelum Stella projects. Beyond the code, you can find Daniel at Latin America conferences, JUGs and workshops speaking about Apache TomEE, RESTful Web Services and other Java related topics. Prior to his Java and Open Source adventures, Daniel was an OSUM Leader at the Sun Microsystems University program. Now he’s a core part of team at Tomitribe.
- 
- 
- 
- 
- 
- It is expected that more people will join the incubator once it's running:
- 
- We are already in contact with several companies from Europe and US, that are heavily interested in contributing to this initiative.
- LJC (London Java Community), SouJava,JUG Chennai will do Hackdays and provide feedback.
- JUG Berlin Brandenburg is one of the bigger JUGs in Germany and would probably also actively contribute to this project.
- JUG Zurich organizes regular (monthly) Hackergarten and will as well contribute to this project.
- 

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