incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicholas L Gallardo <nlgal...@us.ibm.com>
Subject [VOTE] Accept Wink proposal for incubation
Date Fri, 15 May 2009 15:54:35 GMT

Dear Incubator PMC Members,

The Wink team would like to officially present the proposal for the Wink
REST runtime for incubation in the Apache Incubator.  This proposal has
been surfaced previously and is also available at:
http://wiki.apache.org/incubator/WinkProposal

Please cast your votes:

[ ] +1, Accept Wink for incubation
[ ] +0, Indifferent to Wink incubation
[ ] -1, Reject Wink for incubation (if so, please help us understand why)

The formal proposal, included below, provides supporting details on why
this proposal is coming forward and who is involved.

Thanks and cheers on behalf of the team.

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

- Abstract -

  Apache Wink is a project that enables development and consumption
  of REST style web services. The core server runtime is based on
  the JAX-RS (JSR 311) standard. The project also introduces a
  client runtime which can leverage certain components of the
  server-side runtime. Apache Wink will deliver component
  technology that can be easily integrated into a variety of
  environments.


- Proposal -

  Apache Wink is a project that enables and simplifies development
  of REST style HTTP based services. The project includes both
  server and client side components that can be used independently
  of each other. The server side is a stand-alone component that
  integrates easily with many existing application servers. The
  client side API enables the user to develop applications that
  interact with server resources in a RESTful manner. The goal
  is to provide component technology for both RESTful services
  and clients that can be used in a number of contexts. These
  contexts could range from a full Java EE runtime environment
  (Geronimo) to a J2SE environment with a simple HTTP listener
  service.

  The server component of Apache Wink will implement a TCK compliant
  version of the JAX-RS standard defined by JSR 311
  (https://jsr311.dev.java.net/). The client side component provides
  a rich API for quickly developing applications that access and
  update server resources using JAX-RS requests. The API can
  accommodate data returned in several popular formats including
  JSON, XML, ATOM, HTML and CSV. Plans for future extensions are
  currently being discussed, but include a focus on ease of use
  through service discovery and quality of service configuration
  (security, caching).


- Background -

  Over the past decade, the Representational State Transfer (REST)
  architectural style of web services has been gaining popularity.
  Introduced by Roy Fielding in 2000, the idea of providing simple
  HTTP based access to server resources has continued to grow even
  as other, more complex web service architectures have been
  published.

  The JSR 311 standard ( https://jsr311.dev.java.net) defines a
  standard set of annotations and a programming model for exposing
  java resources as REST-based resources. With the recent approval
  of the standard and its inclusion in Java EE 6, the use of REST
  and its Java programming standard (JAX-RS), will certainly be
  growing in the near future. As such, there will be a demand for
  an Apache friendly, open source implementation of the standard.
  Apache Wink seeks to provide this implementation in an independent
  manner that is not tied to any platform.


- Rationale -

  The rationale for the project is to build an implementation of the
  JAX-RS specification in open source that can be certified by the
  applicable TCKS (JSR-311). The project would also provide
  integration with Geronimo and other open source-based REST
  communities. Building a strong, vendor-neutral community is
  important to the project so it that will outlast any one person's
  or company's participation. Code released from the project will
  also provide a basis to prototype and build new extensions that
  could eventually be taken for standardization as an extension to
  the JSR 311 work (such as a client API).

  However, the server side is only half of the equation. Once the
  server provides access to a resource, there needs to be clients to
  access and utilize the data. As such, we want to provide a well
  rounded package that also supports the development of the client
  side of the conversation. Because of the simplicity of REST, there
  are a number of clients that satisfy the needs of users today
  (Curl, AJAX clients like Dojo and Google Web Toolkit). The client
  provided by Apache Wink will be strictly a Java-based client with
  capabilities that mirror those of server side componentry.


- Initial Goals -

  (Covered in Rationale section)


- Current Status -

  The IBM and HP teams each have an implementation of REST
  services. IBM is coming with a fully compliant JAX-RS
  implementation which takes some of its core implementation
  leveraging a few standalone utilities from the existing Apache
  CXF project. HP is coming with a proven RESTful SDK composed of
  Client and Server components that are being used by HP products
  over the past two years.


- Community / Meritocracy -

  The Apache Wink team is fully committed to working with the
  Apache and open source communities to build this project. We
  support the Apache way and desire to draw in additional
  developers to bring this project to its full potential. As the
  team already has developers experienced with the Apache way, we
  started working within its guidelines from the beginning of the
  project.


- Core Developers-

  The core developers for Apache Wink have an extensive
  background in application servers and web service technology.

  IBM
  * Greg Truty is web services and REST architect for WebSphere.
  * Nick Gallardo is an Apache committer and worked on Axis2.
  * Bryant Luk is a developer and tester of the IBM JAX-RS runtime.
  * Mike Rheinheimer is an Apache committer and worked on Axis2.
  * Jesse Ramos is a developer and a tester of the IBM JAX-RS runtime.
  * Dustin Amrhein is an Apache committer and worked on Axis2.
  * Christopher Blythe is an Apache committer and is a performance
    tester of the IBM JAX-RS runtime.


  HP
  * Eli Baram is leading the development of the HP REST SDK.
  * Michael Elman is a senior developer in the HP REST Team.
  * Nadav Fischer is a senior developer in the HP REST Team.
  * Martin Snitkovsky is a senior developer in the HP REST Team.
  * Tali Alsaigh Cohen is a senior developer in the HP REST Team.


- Alignment -

  Apache Wink was created with Open Source in mind and embraces
  the philosophy. The project is based on and includes Apache
  components. Portions of the initial code base for Apache Wink
  were extracted from Apache CXF.  Code changes to the CXF source
  base have been shared with the CXF community.

  Several common Apache components are used throughout the code.
  These include:

  commons-codec,
  commons-logging,
  commons-http-client
  Apache Abdera

  In addition, Apache Wink will be built using Ant or Maven.
  The project also uses several non-Apache Open Source products
  (outlined-below) during development and testing.


- Known Risks -

  1. Orphaned products

  Apache Wink will not be orphaned. The major backers currently use
  the project for support of internal or external products. IBM
  has a proven track record  of supporting the open source
  projects we sponsor. HP embeds Apache Wink in several products
  in order to expose and consume REST services.

  2. Inexperience with Open Source

  Apache Wink was created with open source in mind by people who
  know and support the philosophy. The IBM team involved has
  experience with several other open source and Apache projects
  including AXIS 2. HP is managing Wink internally in an open
  source fashion allowing developers from HP Software to contribute,
  collaborate and share information.

  3. Homogenous Developers

  Apache Wink is result of IBM and HP coming together to develop a
  common REST framework. As such, many people have had input to
  the initial product that is being submitted. We look to continue
  diversifying the mix of contributors as we move forward.

  4. Reliance on Salaried Developers

  Currently the main developers are salaried developers with
  their respective companies. Given the momentum of the REST
  architecture we expect the project to draw others outside the core
  team to contribute.

  5. Relationships with Other Apache Products

  Initial portions of the IBM codebase for Apache Wink were extracted
  from the Apache CXF project. These code pieces served as components
  upon which a lightweight runtime was built to enable the REST server
  capability. Ultimately, we would like to work with the CXF team to
  ensure uniformity in our interpretations of the JAX-RS specification
  and to align the technical direction where possible.

  Because the goal of the project is to provide REST server componentry
  and not a standalone runtime, Apache Wink will rely on existing server
  projects like Apache Geronimo and Apache Tomcat to provide the
  infrastructure needed to handle service requests.

  Because JAX-RS will be a portion of the upcoming Java EE 6
  specification, Apache Wink will be able to provide a drop-in component
  that Geronimo can use to certify its Java EE 6 compliance when the
  time comes.

  6. A Excessive Fascination with the Apache Brand

  N/A



- Documentation -

  Apache will receive and host all Apache Wink documentation via the
  company submissions of their respective runtimes.


- Initial Source -

  Apache would receive all source and documentation contributions
  under the Apache contributor’s agreements. Each company will seed
  the incubator with their own source tree (and a joint effort will
  take place merging the various code bases).


- External Dependencies -

  activation-1.1.jar
  commons-collections-3.2.jar
  commons-lang-2.3.jar
  commons-logging-1.1.jar
  jaxb-api-2.1-sources.jar
  jaxb-api-2.1.jar
  jaxb-impl-2.1.4-sources.jar
  jaxb-impl-2.1.4.jar
  spring-2.5.jar
  stax-api-1.0-2.jar
  xercesImpl-2.6.2.jar
  geronimo-j2ee_1.4_spec-1.1.jar


- Cryptography -

  N/A


- Required Resources -

  Mailing lists
  * Development
  * User
  * Commits

  Subversion repository
  Issue Tracking
  Wiki space
  Build machine (Maven and Continuum )


- Subversion Directory -

  TODO


- Issue Tracking -

  JIRA


- Other Resources -

  N/A


- Initial Committers -

  Name                         Email                      CLA

  Greg Truty                 gtruty@us.ibm.com          No
  Nick Gallardo            nlgallar@us.ibm.com          Yes
  Bryant Luk               bluk@us.ibm.com              Yes
  Michael Rhienhiemer      rott@us.ibm.com            Yes
  Jesse Ramos              jramos@us.ibm.com            Yes
  Dustin Amrhein           damrhei@us.ibm.com           Yes
  Christopher Blythe       cjblythe@us.ibm.com          Yes
  Eli Baram                ebaram@hp.com                Yes
  Michael Elman            elman@hp.com           Yes
  Nadav Fischer            nadav.fischer@hp.com       Yes
  Martin Snitkovsky        martin.snitkovsky@hp.com   Yes
  Tali Alsaigh Cohen       tali.alsaigh-cohen@hp.com  Yes
  Tomer Shadi              tomer.shadi@hp.com           Yes


- Affiliations -

  Name               Affiliation

  Greg Truty              IBM
  Nick Gallardo   IBM
  Bryant Luk              IBM
  Michael Rheinheimer   IBM
  Jesse Ramos             IBM
  Dustin Amrhein  IBM
  Christopher Blythe    IBM
  Eli Baram               HP
  Michael Elman   HP
  Nadav Fischer   HP
  Martin Snitkovsky     HP
  Tali Alsaigh Cohen    HP
  Tomer Shadi             HP


- Sponsors -

  Champion

   * Davanum Srinivas


  Nominated Mentors

  * Davanum Srinivas
  * Kevan Miller
  * Steve Loughran

  Sponsoring Entity

  * Davanum Srinivas / Apache Incubator (vote pending)


Thanks,

-Nick


Nicholas Gallardo
WebSphere  - REST & WebServices Development
nlgallar@us.ibm.com
Phone: 512-286-6258
Building: 903 / 5G-016
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message