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 "WinkProposal" by GregTruty
Date Wed, 22 Apr 2009 16:26:34 GMT
Dear Wiki user,

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

The following page has been changed by GregTruty:
http://wiki.apache.org/incubator/WinkProposal

New page:
= Apache Wink =

=== 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.
 * 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.
 * Bryant Luk is a developer and 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. Several common Apache components are used throughout the code.
These include:
 * commons-codec, 
 * commons-logging, 
 * commons-http-client 
 * Apache Abdera 

In addition, Apache Wink is built using Ant or Maven

Apache Wink also uses several non-Apache Open Source products during development and testing.


== Known Risks ==

=== 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.

=== 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.  

=== 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. 

=== 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.  

=== 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.


=== 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

 *	Mailing lists:
 *-     Development
 *- 	User
 *- 	Commits
 *- 	Private 
 *	Subversion repository
 *	Issue Tracking
 *	Wiki space
 *	Build machine (Maven and Continuum )


Subversion Directory

TODO

Issue Tracking

 * JIRA 

Other Resources

 * none

== Initial Committers ==


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

== Affiliations ==



|| '''Name'''           || '''Affiliation'''   ||
|| Greg Truty           ||          IBM        ||
|| Nick Gallardo        ||          IBM        ||
|| Dustin Amrhein       ||          IBM        ||
|| Bryant Luk           ||          IBM        ||
|| Jesse Ramos          ||          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)

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message