Webtier One Pager for v3 Final

[

Unknown macro: {TableOfContents title='Webtier '}

|(TableOfContentstitle='Webtier')]

1. Introduction

1.1. Project/Component Working Name:

GlassFish Webtier

1.2. Name(s) and e-mail address of Document Author(s)/Supplier:

The individual who are wrote this document

Webtier team (webtier@glassfish.java.net)
Rajiv Mordani (Rajiv.Mordani@sun.com)

1.3. Date of This Document:

01/23/08

2. Project Summary

2.1. Project Description:

The webtier for GlassFish v3 is based on a subset of the Java EE 6
specifications namely Servlet 3.0, JSP 2.2, JSTL 1.1, EL 1.1 and JSF
2.0. In addition to the main specifications the implementation will also
provide support for new web 2.0 features like Comet and AJAX.

See below for a longer, more detailed technical description.

2.2. Risks and Assumptions:

  • Risks related to Grizzly config is specified in the Grizzly config one pager.

3. Problem Summary

3.1. Problem Area:

In order to have a Java EE 6 compliant implementation and the Java EE 6 web profile implementation, every implementation MUST provide a web container and it's associated pieces. In addition to the Java EE 6 requirements, the container needs to be competitive with some of the other light weight containers like Tomcat and Jetty. Also the support for scripting languages that help build web applications using these languages on top of GlassFish / Java VM are gaining popularity and need to be supported.In addition to this, we also need to support running the web container in embedded mode in GlassFish.

3.2. Justification:

The webtier projects provide the core web container of Java EE 6 and support for web 2.0 style of programming.

4. Technical Description:

4.1. Details:

  • Servlet 3.0 is introducing new features like pluggability, asynchronous support, security enhancements, ease of development (see the servlet specification for more details at the JCP site. The v3 web container will be the reference implementation for the specification.
  • JSF 2.0 is a major new feature release including support for ajax, composite components, scripting, and many other improvements to ease of use (see the JSF specification for more details at the JCP site. Mojarra, the reference implementation for JSF, will be included in GlassFish v3.
  • Maintenance releases of JSP (JSP 2.2) and the unified expression language (EL 1.1) (both available now at http://jcp.org/en/jsr/detail-245 will also be implemented as part of the web container in GlassFish v3. The EL now includes direct support for method invocation.
  • Features that were deferred from the v3 Prelude release will also be included in the v3 release corresponding to Java EE 6 -
    • Dynamic reconfiguration for http-listener and virtual-server prior to WAR deployment 6213
    • Port unification at least for the web container is a goal. Ideally with the grizzly config changes we should be able to achieve this over time for all of v3 and the goal should be to be down to two ports - one for admin gui and one for everything else.
    • Bugs that were excluded for the prelude release will be addressed in this release.
  • Fix all P1-P3 bugs for this release.
  • Tomcat alignment
    • More complete support for context.xml
      • WatchedResource
      • context.xml packaged outside of WAR 4996
      • Application Management support
    • Porting of bug fixes from Tomcat
  • Grizzly integration
    • Upgrade to Grizzly 1.9.x
    • Re-use Grizzly OSGi bundle instead of repackaging
    • openESB async support
    • Ongoing support for scripting extensions (Jruby/Grails)
    • Remove CoyoteRequest/GrizzlyRequest code duplication
  • Atmosphere
    • Version 0.1
    • V3 Update Center Integration
  • Bayeux/Cometd
  • Embeddable web container
  • OSGi HTTP service impl
  • Changes for Grizzly config. See [ Grizzly config |GrizzlyConfigOnePager] one pager.
  • JSF 2.0 will be integrated into v3.
  • Performance optimizations including -
    • Hybrid (blocking / non-blocking)
    • Classloader optimizations
    • Reducing the number of stack frames
    • Async Http Write
    • Expose OS Socket property
    • Static Resource serviced by Grizzly directly (only if no filters or security constraints)

4.2. Bug/RFE Number(s):

4.3. In Scope:

4.4. Out of Scope:

Any features related to clustering, for example, session management, cluster support for async feature from servlet 3.0

4.5. Interfaces:

4.5.1 Exported Interfaces

Interface Stability Former Stability (if changing) Comments
Servlet 3.0 Standard    
JSF 2.0 Standard    
JSP 2.2 Standard    
EL 1.2 Standard    
Tomcat and GlassFish valves Stable    
WebContainer Embedded APIs Evolving    
Alternate docroots stable    
Atmosphere unstable    
Grizzly config stable    

4.5.2 Imported interfaces

Interface Stability Exporting Project Comments
Flashlite Stable GlassFish  
hk2 Stable hk2  

4.5.3 Other interfaces (Optional)

Interface Stability Exporting Project Comments

4.6. Doc Impact:

In addition to documenting standard features that are part of the Java EE specification, the documentation should also cover AJAX via jMaki and JSF, Comet features, use of mod_jk, WebDAV, SSI and CGI features that will be available in the v3 release.

4.7. Admin/Config Impact:

How will this change impact the administration of the product?

  • Dynamic reconfiguration support via admin console. Already planned. Please see the admin one pager.
  • Grizzly config changes for CLI and GUI.

4.8. HA Impact:

What new requirements does this proposal place on the High Availability or Clustering aspects of the component?

4.9. I18N/L10N Impact:

Does this proposal impact internationalization or localization?

4.10. Packaging & Delivery:

What packages, clusters or metaclusters does this proposal impact? What is its impact on install/upgrade?

4.11. Security Impact:

How does this proposal interact with security-related APIs or interfaces? Does it rely on any Java policy or platform user/permissions implication? If the feature exposes any new ports, Or any similar communication points which may have security implications, note these here.

4.12. Compatibility Impact

  • Grizzly configuration, which is new, is replacing some of the properties that existed in GlassFish v2. The new elements in Grizzly configuration will be the recommended way.

4.13. Dependencies:

  • Admin for dynamic reconfiguration and new commands for grizzly config

5. Reference Documents:

List of related documents, if any (BugID's, RFP's, papers).

Explain how/where to obtain the documents, and what each contains, not just their titles.

6. Schedule:

6.1. Projected Availability:

Aligned with the GlassFish v3 release.