GlassFish Server Open Source Edition 3.1 - Metro
There are 3 main focus areas for the Project Metro in scope of GF 3.1:
Scope
The goal is to support multiple alternatives for authentication (username password or SAML token, etc.). Metro High Availability SupportMetro WS stack provides certain stateful features, such as secured conversation, reliable messaging or stateful web services. To support the stateful features in a clustered environment we need to identify all the state information that needs to be saved and replicated and update Metro implementation to support the state saving as well as state recovery from a replica in case of a node failure. NOTE: Our focus is primarily on HA support in the areas of SC and RM. Optionally, we may be supporting HA for stateful web services. We do NOT plan to support HA for transactional WS as the feature, in its current implementation, is already proposed for dropping completely from the Metro stack. WS-I ComplianceIn addition to standardized WS-* specification, WS-I organization is chartered to define a set of interoperability profiles that attempt to resolve ambiguities of the original WS-* specifications to improve interoperability. The goal is to support these profiles in Metro. We need to develop a sets of predefined test scenarios for each supported WS-I profile and validate the compliance by successfully passing these test cases against our own implementation as well as against implementations of other vendors (MS, IBM). The actual test scenarios in RSP and BSP domains will be implemented by external contractors. MavenizationCurrently, the Metro build process is ant-based and is tightly integrated into the build of WSIT/Tango. As a project with a significant number of dependencies, dependency management becomes more and more challenging. At the same time, Metro needs to provide maven artifacts to correctly integrate with GF. In this effort we aim to decouple Metro and WSIT builds and switch the build system from ANT to MAVEN to better align our build system to the one used by GFv3. As a result, we plan to achieve a transparent and simplified dependency management, improved modularization of the code, natural identification of inter-module dependencies and (internal) APIs as well as reduced cost of build and RE maintenance. Unified ConfigurationAs part of this feature we plan to introduce a new single configuration file for all domains and all configuration options of the Metro stack as opposed to current approach that may require users to use multiple configuration files to configure a single web service. The new configuration file format should also be better aligned with the standard webservices.xml format as defined in JSR109. As part of the feature we plan to design mechanisms that would allow us to provide unified support for other deployment descriptors, with an initial focus on the support for the WebLogic Web Services deployment descriptor. Support for Error Handling in WS-TrustStandard error codes are introduced in WS-Trust/SC spec. We will use some of them as thrown by the server to enable automatic session renew to avoid that the user transaction being interrupted. Time Skew for WS-Trust and WS-SecureConversation Token LifetimeIssued tokens and security contexts are only valid in a period of time. We will add support for configuring skew of time for the difference allowed for the system clocks of the sender and recipient. Used in case that the clocks may not be in sync. Servlet 3.0 Async SupportServlet 3.0 has asynchronous support and it can be used to process a HTTP request using multiple threads. Servlet 3.0 + AsyncProvider will provide a scalable solution on the server side. This can also be used to evaluate SEI async support proposal 787. This doesn't affect servlet 2.x deployments. Test harness support for GlassFish v3.xJAX-WS unit tets can be run in multiple enviornments: Tomcat, GlassFish v2, in-vm, lwshs, JaxwsInJDK. Test harness will be extended so that JAX-WS/Metro unit tests can also be run on GlassFish v3.x. wsimport -clientjar optionClient side programming model involves creating a Service object and that in turn fetches WSDL during service creation. There are few solutions to avoid this(using catalog), but they are not complete. The proposed switch gets the WSDL/schemas, fixes the import locations, jars all the generated artifacts. Generated service is also modified to refer to the WSDL in the jar file. Design Document
|
Item # | Date/Milestone | Feature-ID | Description | QA/Docs Handover? | Status / Comments |
---|---|---|---|---|---|
MS1 (5/24) | METRO-003 | complete the feature | Yes | DONE | |
MS2 (6/21) | METRO-007 | complete the feature | Yes | DONE | |
MS3 (7/19) | METRO-008 | complete the feature | Yes | DONE | |
MS3 (7/19) | METRO-009 | complete the feature | No | DONE | |
MS3(7/19) | 109-02 | complete modifying the tests to run in embedded | Yes | DONE | |
MS4 (8/16) | METRO-001 | complete the feature | Yes | ||
MS4 (8/16) | METRO-002 | complete the feature | Yes | ||
MS4 (8/16) | METRO-006 | complete the feature | Yes | ||
MS4 (8/16) | METRO-010 | complete the feature | Yes | DONE | |
MS5 (9/13) | METRO-004 | complete the feature | Yes | ||
MS5 (9/13) | METRO-005 | complete the feature | Yes | ||
MS5 (9/13) | METRO-011 | complete the feature | Yes | ||
MS5 (9/13) | METRO-013 | complete the feature | Yes | ||
MS5 (9/13) | 109-02 | fix all issues | Yes | ||
MS5 (9/13) | 109-01 | complete the feature | Yes |
Task | Target Milestone | Start | End Date | Owner(s) | Feature ID - Task ID | Status / Comments |
---|---|---|---|---|---|---|
Define and deliver to GF team state saving API requirements | MS2 | 5/5 | 5/14 | Marek | METRO-002-01 | DONE |
Identify and collect all Metro state information that needs to be saved | MS2 | 5/10 | 5/28 | Marek, Jiandong, (Jitu) | METRO-002-02 | DONE |
Define backing stores - scopes, names, data types, storing strategies | MS2 | 5/10 | 5/28 | Marek, Jiandong, (Jitu) | METRO-002-03 | DONE |
Design and implement common API & runtime support for Metro HA | MS4 | 7/19 | 7/30 | Marek, Jitu | METRO-002-04 | DONE |
Implement RM failover | MS4 | 7/19 | 8/16 | Marek | METRO-002-05 | DONE |
Implement SC failover | MS4 | 7/19 | 8/16 | Jiandong | METRO-002-06 | |
Implement NonceManager failover | MS4 | 7/19 | 8/16 | Kumar | METRO-002-07 | DONE |
Implement & run BP test scenarios, fix issues | MS1 | Jitu, Rama | METRO-003-01 | DONE | ||
Provide support to external contractors with RSP, BSP test scenarios development, fix issues | MS1 | Jiandong, Kumar, Marek, Suresh | METRO-003-02 | DONE | ||
Create general migration scripts infrastructure | MS1 | Marek | METRO-004-01 | DONE | ||
Define initial WSIT modules | MS1 | Marek | METRO-004-02 | DONE | ||
Refactor and resolve WSIT intermodule dependencies | MS2 | 5/6 | Marek | METRO-004-03 | DONE | |
Migrate WSIT sources and unit tests | MS2 | 5/6 | Marek | METRO-004-04 | DONE | |
Migrate standard Metro bundle ANT scripts | MS5 | 8/19 | 9/13 | Marek | METRO-004-05 | In Progress |
Migrate OSGi Metro bundle ANT scripts | MS5 | 8/19 | 9/13 | Marek | METRO-004-06 | In Progress |
Migrate samples | MS5 | 8/19 | 9/13 | Marek | METRO-004-07 | |
Create all infrastructure&logic that reads metro-webservices.xml and translates the config into features | MS4 | 5/10 | 8/27 | Fabian | METRO-005-01 | In Progress |
Migrate metro.xml into metro-webservices.xml | MS5 | 8/16 | 8/31 | Fabian | METRO-005-02 | |
Migrate WSIT config files into metro-webservices.xml | MS5 | 8/26 | 9/16 | Fabian | METRO-005-03 | |
OPTIONAL: Migrate JAXWS RI config files into metro-webservices.xml | MS5 | 9/16 | end | Fabian | METRO-005-04 | |
Analysis standard and custom exception handling | MS4 | 7/14 | 7/16 | Jiandong | METRO-006-01 | |
Support for automatic renew/reissue of security context with standard error code | MS4 | 8/2 | 8/6 | Jiandong | METRO-006-02 | |
Writing dev test case | MS3 | 8/9 | 8/13 | Jiandong | METRO-006-03 | |
Analysis of use case | MS1 | 5/20 | 5/21 | Jiandong | METRO-007-01 | DONE |
Support for issued token lifetime | MS2 | 5/26 | 5/28 | Jiandong | METRO-007-02 | Done |
Support for security context lifetime | MS2 | 6/7 | 6/9 | Jiandong | METRO-007-03 | Done |
Writing dev test case | MS2 | 6/10 | 6/11 | Jiandong | METRO-007-04 | Done |
Studying Servlet 3.0 async API | MS2 | 5/24 | 6/21 | Rama | METRO-008-01 | DONE |
Writing Servlet 3.0 async transport | MS3 | 6/21 | 7/19 | Rama | METRO-008-02 | DONE |
Writing Servlet 3.0 async transport testcases | MS3 | 6/21 | 7/19 | Rama | METRO-008-03 | |
Studying v3.x REST API | MS2 | 5/24 | 6/21 | Jitu | METRO-009-01 | DONE |
Writing Test harness support for v3.x | MS3 | 6/21 | 7/19 | Jitu | METRO-009-02 | DONE |
Writing wsimport -clientjar | MS4 | 7/19 | 8/16 | Rama | METRO-010-01 | DONE |
Writing -clientjar testcases | MS5 | 8/16 | 9/01 | Rama | METRO-010-02 | DONE |
Modifying tests to support webservices in embedded GF | MS3 | 6/21 | 7/19 | Bhakti | 109-02 | |
Fixing issues to support webservices in embedded GF | MS5 | 8/16 | 9/01 | Bhakti | 109-02 | |
Supporting WLS descriptors | MS5 | 6/1 | 9/01 | Rama | 109-01 | |
Bug/Performance fixes | MS5 | 9/13 | Ryan | METRO-011-01 | ||
Read through WS-TX functional spec | MS3 | 6/21 | 6/23 | Marek | METRO-013-01 | DONE |
Investigate WS-TX system service bootstrapping in GF 3.1 | MS3 | 6/24 | 7/2 | Marek | METRO-013-02 | DONE |
Investigate WS-TX system service hiding in GF 3.1 | MS3 | 6/24 | 7/2 | Marek | METRO-013-03 | DONE |
Implement WS-TX system service boodstrapping and hiding support | MS5 | 8/19 | 9/13 | Marek | METRO-013-04 | |
Implement support for WS-TX configuration in Metro | MS3 | 7/12 | 7/16 | Marek | METRO-013-05 | DONE |
Port the core WS-TX implementation | MS5 | 7/1 | 9/13 | Paul | METRO-013-06 | In Progress |