This proposal seeks to create a project within the Apache Software Foundation to continue the development and advancement of the Jini technology core infrastructure. It has broad backing from the Jini Community, and includes core developers from Sun Microsystems (original developer of the technology) as well as Community technical leaders.
At the time of this proposal, there are no implementations of Jini technology at the Apache Software Foundation.
Thank you for your consideration.
*Proposal for new project River*
8 December 2006
Jini technology is a service oriented architecture that defines a programming model which both exploits and extends Java technology to enable the construction of secure, distributed systems consisting of federations of services and clients. Jini technology can be used to build adaptive network systems that are scalable, evolvable and flexible as typically required in dynamic computing environments.
Quoting from The Jini Specifications (http://java.sun.com/docs/books/jini/spec/) book:
- "Jini technology is a simple infrastructure for providing services in a
- network, and for creating spontaneous interactions between programs that use these services. Services can join or leave the network in a robust fashion, and clients can rely upon the availability of visible services, or at least upon clear failure conditions. When you interact with a service, you do so through a Java object provided by that service. This object is downloaded into your program so that you can talk to the service even if you have never seen its kind before - the downloaded object knows how to do the talking. That's the whole system in a nutshell."
Sun Microsystems originally introduced the technology in January, 1999 by providing a Jini Technology Starter Kit (http://starterkit.dev.java.net/). This includes a contributed implementation of all of the specifications, as well as helpful utilities and tools. The source code was made available through the Sun Community Source License (SCSL) as an attempt to make the code widely available and accessible to both individuals and companies. Sun has continued to innovate throughout the years, releasing many versions of the starter kit. The license associated with the starter kit was changed (http://archives.java.sun.com/cgi-bin/wa?A2=ind0503&L=jini-users&O=A&P=36217) in March, 2005 to the Apache License, Version 2.0.
Since its beginning, there was desire and effort to form a developer community around the technology. This has helped to create an interesting, active, and passionate community - the Jini Community. This global Community has engaged on technology projects, discussions and debates, events, and a decision making process. It has contributed to, and helped influence the direction of the starter kit. Some of the collaborative technology projects have led to key contributions being used by other technology projects as well as commercial products. One example is the Service UI API (http://www.artima.com/jini/serviceui/), which is a way to attach user interfaces to Jini services.
Despite the obvious successes of the technology and Community, some changes are in store as outlined in a recent note to the Community: "A New Day" (http://archives.java.sun.com/cgi-bin/wa?A2=ind0604&L=jini-users&F=&S=&P=4029). The most critical part of the new plan is to find the right place for the future development and advancement of the core Jini technology. We wanted an environment that was synergistic with our exisiting Community culture -- so one that is active, with open communication and collaboration, and a reputation for producing high quality software. We think we've found that place with the Apache Software Foundation.
The River project will be meritocractic. The project will follow the guidelines (http://apache.org/foundation/how-it-works.html#meritocracy) of the Apache Software Foundation. In order to achieve this, we plan on proactively recruiting individuals in the Community to get involved in the project: specifying work that needs to be done, encouraging bug fixes, enhancements, and advancements, and engaging in discussion on how the code works and is structured. In the end, we are committed to creating an environment to foster a meritocracy.
There has been a diverse and active Community built around Jini technology since it was first introduced in January, 1999. The Jini Community consists of a global set of individuals, companies, non-profit organizations, and universities. The Community communicates primarily through various email lists: jini-users (http://archives.java.sun.com/archives/jini-users.html) (~1400 subscriptions), and javaspaces-users (http://archives.java.sun.com/archives/javaspaces-users.html) (~800 subscriptions). There are shared works and collaborative projects around the core infrastructure in the Community, with many of them gathered at Java.net (http://jini.dev.java.net). There is a wiki -based web site, Jini.org (http://www.jini.org), which hosts a variety of information, links, and content on "all things Jini". This includes organization and information on events (http://www.jini.org/wiki/Category:Events) that the Community has leveraged to share ideas and come together. There are also many individuals in the Community who have chosen to evangelize the technology at various conferences, user groups, blogs, etc. In summary, while it isn't quite the same as running an open source community, we believe we've developed an incredibly strong base on which to build.
Most of the initial core developers are key members of Sun's Jini development, test, and Community management team. There are three (non Sun) initial core developers that are well recognized technology and thought leaders in the Jini Community, including giving presentations (http://www.jini.org/wiki/8th_JCM_Sessions#Why_We_Need_A_Standard_Jini_Platform) at Jini Community Meetings, and receiving the annual Jini Community Contributor's Award in recognition of their contributions to the Community. There are a number of other strong developers in the Community interested and we expect will prove themselves worthy committers in short order.
River is aligned well with Apache in terms of technologies and licensing. It fits in well technologically with other Apache projects, which also focus on clustering, web frameworks, and Java technolgies. Also, the starter kit build framework is based on Ant. The license of the initial source being proposed is already aligned as it is licensed under the Apache License, Version 2.0.
(0.2) warning signs
The project being proposed is a natural evolution of the technology and Community. Sun has shepherded both since 1999, and in recent years the Jini Community has been pressing to be more involved and empowered. Once the license for Jini technology was opened up and the Apache License, Version 2.0 was chosen for Sun's contributions (http://archives.java.sun.com/cgi-bin/wa?A2=ind0503&L=jini-users&O=A&P=36217), an open development model was the obvious next step. The response from the Jini Community on this direction has been very positive, with many Community members anxious to get active. This is a proposal we're making with a full committment to construct an active and successful project.
/Inexperience with open source:/
The initial committers have varying degrees of experience with open source projects. All have been involved with source code that has been released under an open source license, but there is limited experience developing code with an open source development process. We do not, however, expect any difficulty in executing under normal meritocracy rules.
Since the Jini Technology Starter Kit has been mainly developed to date by Sun Microsystems, the vast majority of initial committers to the project are from Sun. Over the years, Sun has received bug fixes and enhancements from other developers which have been incorporated into the code. Our plan is to work with these other developers and add them as committers as we progress. There are five other initial committers (non Sun): Bill Venners, Dan Creswell, Mark Brouwer, Nigel Daley, and Geir Magnusson. Bill is the lead of the Service UI API work; Dan has been involved with much Jini-based development, including an implementation of the JavaSpaces service called Blitz (http://www.dancres.org/blitz/); Mark is a veteran of much Jini-based development, including commercial work at Virgil (http://www.virgil.nl) as well as leading the open source Cheiron (http://www.cheiron.org) project; Nigel was formerly at Sun as the Jini test lead, but now is with another company; Geir is the Champion for our Apache project proposal.
/Reliance on salaried developers:/
It is expected that River development will occur on both salaried time and on volunteer time, after hours. While there is reliance on salaried developers (currently from Sun, but it's expected that other company's salaried developers will also be involved), the Jini Community is very active and things should balance out fairly quickly. In the meantime, Sun will support the project in the future by dedicating 'work time' to River, so that there is a smooth transition.
/No ties to other Apache products:/
Currently the only tie to Apache projects is the starter kit's use of the Ant build tool. There are potential future ties (http server, database backend, etc) that will be explored.
/A fascination with the Apache brand:/
Many of us have been working on advancing Jini technology and developing the Jini Community for many years. We care deeply about it and want the technology and Commutity to continue to flourish. As we considered options for where/how to move Jini technology to an open source development model, our respect and admiration for the work done by the Apache Software Foundation drove us to choose this as our best option. As a Java-based infrastructure for building systems, River fits in well with the other projects at Apache, and the Community we've built shares many philosophies (open communication, fairness, diversity, etc). We believe there are strong synergies here.
(1) scope of the project
The scope of the River project would be the continued development of Jini technology core infrastructure software, including the implementation of Jini specifications, related utilities and tools. The development would include adding new features and improving performance, scalability, quality, and extensibility.
(2) identify the initial source from which the project is to be populated
The initial resources would be garnered from:
- Jini Technology Starter Kit
(https://starterkit.dev.java.net/downloads/jini/2.1/index.html) project on Java.net,
- Service UI implementation
(http://www.artima.com/jini/serviceui/CodeAccess.html) from Artima.com,
- QATests (formerly, a project on Jini.org)
(3) identify the ASF resources to be created
(3.1) mailing list(s)
- river-private (with moderated subscriptions)
(3.2) Subversion or CVS repositories
River would like to use a Subversion repository.
(3.3) Jira (issue tracking)
Since River would have its own release cycle, it should have its own JIRA project
- Project Name: River
- Project Key: RIVER
(4) identify the initial set of committers
Dan Creswell (email@example.com)
Bill Venners (firstname.lastname@example.org)
Mark Brouwer (email@example.com)
Geir Magnusson Jr (firstname.lastname@example.org)
Bob Scheifler (email@example.com)
Jim Waldo (firstname.lastname@example.org)
Brian Murphy (email@example.com)
Peter Jones (firstname.lastname@example.org)
Juan Ramirez (email@example.com)
Frank Barnaby (firstname.lastname@example.org)
Fred Oliver (email@example.com)
Robert Resendes (firstname.lastname@example.org
Vinod Johnson (email@example.com)
Ron Mann (firstname.lastname@example.org)
Nigel Daley (email@example.com)
Jim Hurley (firstname.lastname@example.org)
Committership for these individuals will be granted upon demonstration of interest/engagement with the new podling after creation as determined by the mentors.
(5) identify apache sponsoring individual
- Geir Magnusson Jr.
- Geir Magnusson Jr.
- Phil Steitz
- Gianugo Rabellino