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 gtr...@us.ibm.com No Nick Gallardo nlgal...@us.ibm.com Yes Bryant Luk b...@us.ibm.com Yes Michael Rhienhiemer r...@us.ibm.com Yes Jesse Ramos jra...@us.ibm.com Yes Dustin Amrhein damr...@us.ibm.com Yes Christopher Blythe cjbly...@us.ibm.com Yes Eli Baram eba...@hp.com Yes Michael Elman el...@hp.com Yes Nadav Fischer nadav.fisc...@hp.com Yes Martin Snitkovsky martin.snitkov...@hp.com Yes Tali Alsaigh Cohen tali.alsaigh-co...@hp.com Yes Tomer Shadi tomer.sh...@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 nlgal...@us.ibm.com Phone: 512-286-6258 Building: 903 / 5G-016