<<Navigation(children)>>

Jaffre Project Proposal

This is a draft version of the Jaffre proposal.

Author: Alexander Veit <<MailTo(alexander.veit AT jaffre DOT org)>>

Date: March 2009

Online version: http://wiki.apache.org/incubator/JaffreProposal

Status: .


D R A F T ::.

Abstract

Jaffre is a leightweight RPC library for the Java platform.

Proposal

Jaffre is a leightweight RPC library for the Java platform. It is designed to be extensible, robust, efficient, and easy to use.

Rationale

There are many RPC technologies for the Java platform.

Few of them limit themselves to connect only Java VMs with Java VMs, but try to be platform neutral. Platform neutrality often adds significant overhead to the development process, or comes with performance and/or memory consumption penalties (see e.g. SOAP based web services). On the other hand, RMI, as a Java-only technology, is often cumbersome to configure and to use.

Jaffre overcomes these limitations, and has additional benefits:

A simple benchmark may illustrate Jaffre's efficiency. 20000 remote calls of the interface

public interface ATest {
   public String echo(String toBeEchoed);
}

with string lenghts from 1 to 20000 on the loopback interface of a Xeon E5420 @ 2.50GHz workstation and JDK 1.6.0_13 take 11800 ms (0.6 ms per call) with an unencrypted, and 25700 ms (1.3 ms per call) with a SSL encrypted connection.

Initial Goals

The initial goal is to revise the code and make it as robust and fault tolerant as possible.

Then a public beta version of Jaffre should be released. To decide if the project is worth to survive the incubation process, it is most important to see the strengths and weaknesses of the choosen approach in practice.

Current Status

The current code base has been developed by Alexander Veit in his spare time. Samples and test cases show that the basic concepts work. Performance tests show the efficiency of Jaffre.

Meritocracy

The initial committer is familiar with the meritocracy principles of Apache. He will follow the normal meritocracy rules also with other potential contributors.

Community

Jaffre strength comes primarily from it's simplicity. In analogy to a famous quotation from RFC 1425 a simple library should tend to ubiquity. If this is true, the development of a vital community will merely be a matter of time.

Core Developers

Currently Alexander Veit is the only core developer of this project.

Alignment

Jaffre will be a new species in the zoo of ASF's remoting technologies.

Known Risks

Orphaned Products

The current Jaffre code base has about 2000 lines of code. An experienced programmer will be able to understand the whole Jaffre code in less than an hour.

So as long as Jaffre will have users, being orphaned is unlikely.

Inexperience with Open Source

The initial committer has some experience with open source communities as a user (mostly ASF and Codehaus).

Homogeneous Developers

With one initial committer developers are as homogeneous as it could be. Given the manageable code base of roughly 2000 lines this should not be a big problem.

Reliance on Salaried Developers

Jaffre currently does not depend on salaried development.

Relationships with Other Apache Products

Jaffre will use Apache Maven as a build system, and Apache Ant to build samples.

A Excessive Fascination with the Apache Brand

The author uses Apache software since eight or nine years, and regards the Apache project as one of he most valuable sources of Java software in the world.

Documentation

Public documentation beyond the JavaDoc in the source code is not yet available.

Initial Source

The initial source code is available at http://www.jaffre.org/.

Source and Intellectual Property Submission Plan

Apache would receive all source and documentation under the Apache Individual Contributor License Agreement V2.0.

External Dependencies

Jaffre does not have any required dependencies other than a JRE.

However, SLF4J is recommended to integrate logging with Jaffre.

Cryptography

Jaffre uses the native capabilities of Java to support TLS.

Required Resources

Mailing Lists

Subversion Directory

https://svn.apache.org/repos/asf/incubator/jaffre

Issue Tracking

JIRA : Jaffre (JAFFRE)

Other Resources

None

Initial Committers

Alexander Veit alexander dot veit at jaffre dot org

Affiliations

None.

Sponsors

We kindly request the Incubator PMC to accept sponsorship for this proposal.

Champion

n.n.

Nominated Mentors

n.n.

Sponsoring Entity

Incubator