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 "WaveProposal" by DavidWang
Date Mon, 22 Nov 2010 03:43:10 GMT
Dear Wiki user,

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

The "WaveProposal" page has been changed by DavidWang.
http://wiki.apache.org/incubator/WaveProposal?action=diff&rev1=3&rev2=4

--------------------------------------------------

- ## page was copied from ShindigProposal
+ Apache Wave Proposal (Apache Incubator)
+ 
  = Abstract =
  
+ Apache Wave is the project where wave technology is developed at apache. Wave in a Box is
the name of the main product at the moment. Wave in a Box (WIAB) is a server that hosts and
federates waves, supports extensive APIs, and provides a rich web client.
- Shindig will develop a container and backend server components for
- hosting OpenSocial applications.
  
  = Proposal =
  
+ A wave is a hosted, live, concurrent data structure for rich communication. It can be used
like email, chat, or a document.
- Shindig will develop a JavaScript container and implementations of
- the backend APIs and proxy required for hosting OpenSocial applications.
  
+ WIAB is a server that hosts waves. The best analogy for this is a mail server with a web
client. WIAB is comprised of a few high-level components: the client and the server. They
have the following major functionality (though this is not an exhaustive list):
+ 
+  * Client
+   *A dynamic web client for users to create, edit, and search waves. Users can access this
client by directly visiting the server in a browser.
+   * Gadgets provide the ability to insert, view, and modify the UI -- exposing the Wave
Gadgets API (http://code.google.com/apis/wave/extensions/gadgets/guide.html)
+   * A console client that can create and edit waves via a command-line-like interface.
+  * Server
+   * Hosts and stores waves. WIAB comes with a default storage mechanism. The administrators
of the server may configure it to use alternative storage mechanisms.
+   * Indexing, allowing for searching the waves a user has access to.
+   * Basic authentication, configurable to delegate to other systems.
+   * Federation, allowing separate Wave in a Box servers to communicate with each other using
the Wave Federation Protocol (http://www.waveprotocol.org/federation). 
+   * Robots, using the Wave Robots API, (http://code.google.com/apis/wave/extensions/robots/)
may interact with waves on a WIAB instance. 
  
  = Background =
  
+ Wave expresses a new metaphor for communication: hosted conversations. This was created
by Lars and Jens Rasmussen after observation of people's use of many separate forms of communication
to get something done, e.g, email, chat, docs, blogs, twitter, etc.
- OpenSocial provides a common set of APIs for social applications
- across multiple websites. With standard JavaScript and HTML,
- developers can create social applications that use a social network's
- friends and update feeds.
  
+ The vision has always been to better the way people communicate and collaborate. Building
open protocols and sharing code available in an open and free way is a critical part of that
vision. Anyone should be able to bring up their own wave server and communicate with others
(much like SMTP).
- A social application, in this context, is an application run by a
- third party provider and embedded in a web page, or web application,
- which consumes services provided by the container and by the
- application host. This is very similar to Portal/Portlet technology,
- but is based on client-side compositing, rather than server.
  
+ We hope this project will allow everyone to easily gain the benefits of Wave with a standard
implementation of Wave – in a box.
- More information can be found about OpenSocial at
- http://code.google.com/apis/opensocial/
  
- == Rationale ==
+ = Rationale =
  
+ Wave has shown it excels at small group collaboration when hosted by Google. Although Wave
will not continue as a standalone Google product, there is a lot of interest from many organizations
in both running Wave and building upon the technology for new products. 
- Shindig will provide implementations of an emerging set of APIs
- for client-side composited web applications. The Apache Software
- Foundation has proven to have developed a strong system and set of
- mores for building community-centric, open standards based systems
- with a wide variety of participants.
  
+ We are confident that with the community-centric development environment fostered by the
Apache Software Foundation, WIAB will thrive.
- A robust, community-developed implementation of these APIs will
- encourage compatibility between service providers, ensure an excellent
- implementation is available to everyone, and enable faster and
- easier application development for users.
  
+ = Initial Goals =
- The Apache Software Foundation has proven it is the best place for
- this type of open development.
  
- The Shindig OpenSocial implementation will be able to serve as
- a reference implementation of the standard. 
+ The initial goals of the project are:
+ 
+  1.  To migrate the codebase from code.google.com and integrate the project with the ASF
infrastructure (issue management, build, project site, etc).
+  1.  To quickly reach a state where it is possible to continue the development of the Wave
In a Box implementation under the ASF project.
+  1.  To add new committers to the project and grow the community in "The Apache Way".
  
  = Current Status =
  
- This is a new project.
+ The open source Wave in a Box project has existed in various forms for approximately 16
months (starting out life as the FedOne open source project).  
  
+ FedOne began in July 2009 in order to accelerate adoption of the wave federation protocol,
and serve as a proof of concept that a non-Google implementation of the wave federation protocol
could interoperate with the Google production instance. It worked. FedOne's existence lead
to a prototype by Novell that demonstrated federation between Google Wave and Novell Pulse
(now known as Vibe). In addition, in May of 2010, SAP unveiled a prototype version of SAP
StreamWork that federated with both Novell Pulse and Google Wave. All three systems interoperated,
sharing real-time state, and gadget updates. In May 2010 Google released significantly more
code (including the cross-browser rich text editor) to connect with other components that
were built from scratch, resulting in a simple web client.
+ 
+ The project has grown over the last year to include many Google and non-Google contributions.
 The project has picked up steam in recent months as the direction of the standalone Google
Wave product has shifted.  At this time the Wave in a Box project enjoys very active development,
with new features and functionality being added almost daily. The first Wave Protocol Summit
was recently held and included developers from a variety of countries, companies, and organizations.
+ 
+ The code base is a mixture of mature core code from Google Wave, and somewhat immature integration
code forming WIAB. WIAB is quickly becoming highly functional and is already in a very "demoable"
state.  The development mailing lists are  very active indicating wide community support.
 We recognize that now is a good time to migrate to the Apache Foundation while the codebase
and community is a manageable size.  Assuming the current momentum continues, we expect strong
growth in the code and community in the near future.
+ 
- = Meritocracy =
+ == Meritocracy ==
  
+ The initial set of committers includes many Google employees, and there is an active and
growing community outside Google contributing to WIAB already today. Google culture itself
encourages meritocracy, and the community has always grown – and will continue to grow –
in this fashion.
- The initial developers are very familiar with meritocratic open
- source development, both at Apache and elsewhere. Apache was chosen
- specifically because the initial developers want to encourage this
- style of development for the project.
  
+ As shown by the initial committers list below, several members from outside of Google have
already demonstrated interest, skill, and commitment to contributing to the project.  These
individuals have been recognized on those merits by the initial committers.  Their selection
as the first wave of new committers is a sign of the burgeoning meritocracy.
+ 
- === Community ===
+ == Community ==
  
+ Wave currently has a healthy community around waveprotocol.org. We plan to move this community
to the Apache Software Foundation incubator.
- Shindig seeks to develop developer and user communities during
- incubation.
  
- = Core Developers =
+ == Core Developers ==
  
+ The initial committers comes from a variety of backgrounds and includes many from Google.
There are a few existing Apache committers amongst this initial group.  We anticipate early
future committers coming from places like Novell, SAP, companies related to the US Navy's
usage of wave, and many independent individuals.
- The initial set of committers includes folks from several commercial
- OpenSocial container providers, including Ning, Google, Hi5, and
- MySpace. We have varying degrees of experience with Apache-style
- open source development, ranging from none to ASF Members.
  
- = Alignment =
+ == Alignment ==
  
+ The developers of WIAB want to work with the Apache Software Foundation because Apache has
proven to provide a strong foundation with good infrastructure and support for developing
projects in an open community.  As WIAB continues to grow, the community will look to both
reuse available Apache projects as well as look for opportunities to contribute back to the
larger Apache community.
- The developers of Shindig want to work with the Apache Software
- Foundation specifically because Apache has proven to provide a
- strong foundation and set of practices for developing standards-based
- infrastructure and server components.
  
  = Known Risks =
  
  == Orphaned products ==
  
- Shindig is new development of an emerging set of APIs.
+ Wave is a new means for communication, and thus it is still maturing. While the initial
implementation (Google Wave) did not gain sufficient traction for it to continue as a standalone
Google product, there are other related projects (e.g. Novell Vibe, SAP StreamWork), and several
startups in the space that are continuing to build on the technology. In addition, the US
Navy has contracted with four companies as part of evaluating using wave technology on every
ship. The community itself is still growing, with several new contributors recently added.
  
  == Inexperience with Open Source ==
  
+ The initial committers have varying degrees of experience with open source projects. Many
from the community are familiar with open source. 
- The initial developers include long-time open source developers,
- including Apache Members.
  
- == Homogenous Developers ==
+ == Homogeneous Developers ==
  
+ The initial set of developers does include many from Google. However, the project has accepted
many patches from independent individuals, and some have already gained committership. Several
companies have expressed interest and forty individuals participated in the Wave Summit.
- The initial set of developers is diverse, but are all employed by OpenSocial
- container providers. Building a more diverse developer community is a high
- priority for this project.
  
  == Reliance on Salaried Developers ==
  
+ Following Google's change of focus for Wave in August, some of Wave's Google developers
have chosen to continue working on Wave, but it is imperative that we continue to grow the
community larger in the coming months.
- The initial group of developers are all employed by potential consumers
- of the project. Remedying this is a large part of why we want to bring the 
- project to Apache.
  
  == Relationships with Other Apache Products ==
  
- None in particular.
+ We currently use the following libraries from Apache
+  * Commons CLI
+  * Commons Codec
+  * Commons HttpClient
+  * Commons Logging
+  * Velocity
+  * Ant
  
+ We've also contributed the Wave Gadget implementation into the Apache Shindig project.
+ 
- ==  A Excessive Fascination with the Apache Brand ==
+ ==  An Excessive Fascination with the Apache Brand ==
  
+ We believe in the processes, systems, and framework Apache has put in place. The brand is
nice, but is not why we wish to enter the incubator.
- We believe in the processes, systems, and framework Apache has put
- in place. The brand is nice, but is not why we wish to come to
- Apache.
  
  = Documentation =
  
- Google's OpenSocial Documentation:
-     http://code.google.com/apis/opensocial/
+ Entry point for documentation of all the specs and designs.
+ http://waveprotocol.org
  
- Ning's OpenSocial Documentation:
-     http://tinyurl.com/3y5ckx
+ Wave Robots API 
+ http://code.google.com/apis/wave/extensions/robots/
+ 
+ Wave Gadgets API 
+ http://code.google.com/apis/wave/extensions/gadgets/guide.html
  
  = Initial Source =
  
- The initial source will consist of the Javascript container and a
- Java based backend providing services to the container. The source
- is being contributed by Google, and will be by a code grant.
+ The initial source will come from http://code.google.com/p/wave-protocol/source/browse/
and http://code.google.com/p/wave-protocol/source/browse?repo=libraries. This consists of
the Java code necessary for the client and server. These are already open source repositories
licensed under the Apache Public License.
+ 
+ = Source and Intellectual Property Submission Plan =
+ 
+ Beginning with the initial unveiling, Google published a liberal patent license: 
+ 
+ Subject to the terms and conditions of this License, Google and its affiliates hereby grant
to you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except
as stated in this License) patent license for patents necessarily infringed by implementation
of this specification. If you institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the implementation of the specification
constitutes direct or contributory patent infringement, then any patent licenses for the specification
granted to you under this License shall terminate as of the date such litigation is filed.
+ 
+ http://www.waveprotocol.org/patent-license
  
  = External Dependencies =
  
- The initial code relies on PHP and the jQuery library.
+ In addition to the previously mentioned Apache dependencies, the initial code relies on
the following libraries that have Apache compatible licenses:
+ 
+ antlr, aopalliance, asm, bouncycastle, cglib, dom4j, emma, gson, guava, guice, gwt, gxp,
hamcrest, jackson, jdom, jetty, jline, jmock, joda_time, jsr305, junit, libidn, mockito, mongo-driver,
oauth, protobuf, protobuf-format-java, protostuff, stringtemplate, websocket, whack, xpp3

+ 
+ = Cryptography =
+ 
+ We use standard crypto library methods available in java.security.*. Wave federation plans
to uses encryption for sending deltas to remote Wave servers.
  
  = Required Resources =
  
- Developer and user mailing lists
+ ==  Mailing lists ==
  
- A subversion repository
+  * wave-dev
+  * wave-commits
+  * wave-private
  
- A JIRA issue tracker
+ It is possible that if the project does grown to include many sub project that we would
split the mailing list up by sub project.  Again we have flexibility.
+ 
+ 
+ == Subversion Directory ==
+ 
+ https://svn.apache.org/repos/asf/incubator/wave
+ 
+ == Issue Tracking ==
+ 
+ Please help us set a JIRA instance for both issue tracking and code review.
+ 
+ == Other Resources =
+ 
+ a wiki (for the sites pages) (http://incubator.apache.org/guides/sites.html or a wiki http://wiki.apache.org/incubator/)
+ code review on reviews.apache.org
+ a server to run a dogfood instance
+ continuous build bot
  
  = Initial Committers =
  
+  * Alex North (Google)
+  * Anthony Watkins (SESI)
+  * Christian Ohler (Google)
+  * Dan Danilatos (Google)
+  * Dan Peterson (Google)
-  * Andy Smith          (Google)
-  * Brian McCallister   (Ning)
-  * Brian Stoler        (Google)
-  * Cassie Doll         (Google)
-  * Dan Bentley         (Google)
-  * Dan Farino          (MySpace)
-  * David Glazer        (Google)
-  * David Harkness      (Google)
+  * David Hearnden (Google)
+  * David Wang (Google)
+  * Ian Roughley (Novell) / roughley@apache.org
+  * James Purser
+  * Joseph Gentle
+  * Lennard de Rijk
+  * Michael MacFadden (Solute)
+  * Soren Lassen (Google)
+  * Tad Glines
+  * Torben Weis (University Duisburg-Essen)
+ 
-  * Diego Doval         (Ning)
-  * Doug Coker          (Google)
-  * Evan Gilbert        (Google)
-  * Graham Spencer      (Google)
-  * Jeffrey Regan       (Google)
-  * John Hjelmstad      (Google)
-  * John Panzer         (Google)
-  * Jun Yang            (Google)
-  * Jussi Myllymaki     (Google)
-  * Kevin Brown         (Google)
-  * Martin Traverso     (Ning)
-  * Paul Lindner        (Hi5)
-  * Ramkumar Ramani     (Google)
-  * Thomas Baker        (Ning)
-  * Thomas Dudziak      (Ning)
-  * Tim Williamson      (Ning)
-  * Zhen Wang           (Google)
-     
-     
  = Sponsors =
  
  == Champion ==
   
- * Brian McCallister   
+ * Paul Lindner
  
  == Nominated Mentors ==
  
-  * Thomas Dudziak      
-  * Brian Fitzpatrick   
-  * Santiago Gala       
+  * Santiago Gala
-  * Greg Stein          
-  * Upayavira           
-  * Sylvain Wallez      
+  * Ben Laurie
+  * Upayavira
+  * Brian W. Fitzpatrick (emeritus on the Incubator PMC)
  
  == Sponsoring Entity ==
  
- The Apache Incubator.
+ 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