GlassFish 3.1 Administration Console 1.2. Name(s) and e-mail address of Document Author(s)/Supplier: Anissa Lam: anissa.lam@oracle.com 1.3. Date of This Document: June 16 , 2010 2. Project Summary 2.1. Project Description: Administration Console (GUI) is one of the tools for application server administrators to configure and monitor the application server. See below for a longer, more detailed technical description. 2.2. Risks and Assumptions: The most significant change in the admin console 3.1 is switching from using AMX to REST API for communicating to the server. Biggest risk of the project is depending on the REST team to provide all the support needed by the GUI team in time and according to schedule. It is also assumed that any features that any sub-project requests to be exposed through the admin console will provide a way for GUI to invoke that through the REST API. The Admin Console will be using the Woodstock components, a JSF component set. Since this is an unsupported product, the GUI team has created a branch for our own use and maintains it. It is assumed that this version will not have major fault that prevents the Admin Console from utilizing it or spend significant time in maintaining it. Although we would prefer to use ADF Faces components, they are unavailable to us due to licensing restrictions. The Admin Console is written on top of the JSFTemplating framework, which is a java.net open source project. It is assumed that JSFTemplating will continue to evolve with features to support the Admin Console. However, no major features have been identified for this release. Detecting the available modules for installation or update depends on the API provided by Update Center 2.0. It is assumed that the update center team will continue to support this and fix any issues encountered. 3. Problem Summary 3.1. Problem Area: The GlassFish Admin Console needs to provide support for configuration so that user is not limited to the command line interface. This is especially needed as clustering is the main delivery driver for 3.1 and the Admin Console can greatly enhance the GlassFish user experience. Since GlassFish v3 has a modular, extensible architecture, the Admin Console needs to solve the pluggability issue, such that any module can plugin to the console, be recognized, and coexist with other Admin Console plugin modules. As product updates and add-ons for GlassFish v3 product line will be deployed through the industry-strength Update Center 2.0, the Admin Console should be able to inform GlassFish users of any installed or available modules for updates. In GlassFish 3.1, we will expand branding support to pages like the shutdown, logout, version pages etc. 3.2. Justification: The Admin Console was well received by the community and often viewed as a differentiator from other similar products in the market. For GlassFish 3.1, we need to continue to provide to the user this user friendly administration tool. 4. Technical Description: 4.1. Details: Admin Console will provide support for the following functionality in 3.1. 4.1.1 Centralized Administration One of the main features in GlassFish 3.1 Admin Console is to provide centralized administration support for a single domain. The same UI and work flow regarding this is expected to be the same as in v2 clustering support. Page layout, tabs and information presented will be the same. This includes:
- Cluster management – This includes cluster listing and creation. Listing table will also include the cluster's instances as well as the status. Cluster can be created and at the same time specifying its instance and the node for this instance. During the creation, user can also specify whether it is sharing a configuration or should a configuration created specifically for this cluster. Start and Stop Cluster and any of the cluster instance is supported through SSH Provisioning.
- Standalone Instance Management – This includes standalone instance creation, editing, and listing. The user needs to specify the Node and may also specify the configuration for this instance. Start and Stop any standalone instance is also supported.
- Node Creation and listing – This includes the listing, creation, and modification of Node. UI will be provided to specify all the parameters for creating this Node, same as those required when using the CLI. We still need more information about the required parameters. SSH Provisioning Project may provide more info on this.
- Cluster support during application deployment – As in v2, user will be able to specify the target during deployment. The target can also be changed after the application is deployed.
- Multiple Configuration support – All configurations will be listed under the Configurations Tree Node. A link to the configuration used by the cluster or stand alone instances will be provided in the general info page of this cluster or stand alone instance for usability. There will also be an additional 'System Properties' node under the configuration that lists out the system properties, its default value, and the overridden value for each instance (if there is one).
- Resources creation/listing/edit for cluster – Just as in application deployment, the target for resources may be specified during creation or modification. In the cluster or standalone instance pager, there will be a tag named "Resources" that list out all the resources available for this cluster or standalone instance. Resources include the following: JDBC Resource, Connector Resource, Admin Object Resource, Java Mail, Custom Resource and External JNDI Resource.
- EJB Timer migration – As in GlassFish v2, a button for migrating EJB timer will be provided in the cluster page.
4.1.3 Application Enhancement A couple enhancements in the Application area will be provided. This includes:
- WebLogic Deployment Descriptor support – In the table that lists the DD for the application, the webLogic DD will also be listed and can be viewed like other DD's. The deployment team will need to provide a new API to handle this, or add this support to the existing API.
- Application Version – This is a new feature in 3.1. A new optional text field will be provided for user to specify the application version. This info will be passed to deployment during the deploy or redeploy actions. The Application listing table will also include a column to show the version if specified. The Application name column will be pre-sorted so that application with different versioning will be 'grouped' together.
- Additional Deployment Descriptor – The newly named DD, both sun-.dtd and glassfish-.dtd will be listed in the GUI for each application. The deployment team will provide a new API for this, or modifying the existing API to return only the bundled dtds
- Deployment Warning If the application includes any deployment descriptor that is not fully supported by the server, deployment team will log the warning in server.log, and will try to see if it's possible to pass a generic WARNING back to GUI to display to user.
Refer to Deployment One Pager for more info. 4.1.4 Integration with LogViewer for Remote Instances The Admin Console must provide a way to allow the user to view the logs for any standalone or clustered instance. Just as in v2, a 'View Log Files' button will be present in the general information page to allow user to bring up the log viewer. This feature will be limited to running instances, unless backend can provide the support for instances that are not running by MS4. Refer to Logging Project for more info. 4.1.5 Improve Branding Support In GlassFish v3 support exists for providing custom branding via the Admin Console plugin architecture. However, support is missing for the logout, shutdown, and version pages. The header is also not customizable. For GlassFish 3.1, we may enhance branding support to include these additional pages / areas. Support for a customizable logout page is committed for this release. Header, version and shutdown pages will be considered as a nice-to-have features and will be addressed if the schedule allows. 4.1.6 Security Enhancement There are 2 security enhancement that may need GUI support. Support for the new PAM Realm, and a LoginModule for the Certificate Realm. However, there is not enough information from the Security Project Page to understand what is required for Admin Console support. This section will be updated when more information is available.\ 4.1.7 JDBC/Connectors Enhancement The following list is based on JDBC/Connector One Pager . Due to limited resource, the list is divided into 'Committed' and 'Nice-to-have' features. Committed:
- Support for Clustering for all types of resources.
- Support for adding new attributes to the JDBC Connection Pool page; Advanced tab: A text field for "Statement Leak Tracing Timeout in seconds", and a checkbox for "Statement Leak Reclaim".
- Addition of a new text field to the JDBC Connection Pool page; Advanced tab for configuring the SQL Trace Cache Size.
- Display Validation classnames for the default database vendors in the Admin Console whenever connection validation is turned on and custom validation is chosen as the connection validation mechanism. The getValidationClassNames(String dbVendor) API from ConnectorRuntimeAPIProvider could be used for the same.
- A new checkbox will be added to the Connection Pool creation page: "Introspect". When this checkbox is ticked, the list of implementation classnames is displayed on the next page based on database vendor and resource type entered by the user.
Nice-to-have:
- UI for Application scoped resources
- Display the new monitoring statistics for connections usage by applications
- Display SQL Tracing monitoring statistics to view most frequently used sql queries
- Display the Statement cache hit/miss monitoring statistics
- Display the Statement leak monitoring statistics
4.1.8 Availability support Just as in v2, there will be pages for the user to configure Availability Service. 4.1.9 GMS Support Just as in v2, there will be a page under Configuration for the user to edit Group Management Service. 4.1.10 Transaction Recovery Support for this feature will be added. 4.1.11 LogViewer Enhancement
- Logging team requests more 'Search options' for Log Viewer.
- Alert user about SERVER or WARNING messages when it is logged, and bring up the logviewer with these messages automatically.
- Have multiple log viewer window so user can examine logs from different instances simultaneously.
All of the above is nice-to-have feature for 3.1 console. 4.1.12 Grizzly Enhancement The Grizzly Project Page mentions support for Port Unification and some new commands in the Admin Console, however there is not much detail. When the functional spec is available, more information will be provided here. However, due to limited resource, this is considered a nice-to-have feature for the GlassFish 3.1 Admin Console. 4.1.13 Monitoring statistic This task includes converting existing code from getting the statistic through AMX to using the REST API. No change in the UI is expected. Displaying any additional monitoring statistic besides those that is already available in v3 console is considered as Nice to Have feature. User can use CLI to look at these statistics if needed. Some Implementation Details The most significant changes in the implementation of 3.1 Admin Console is the transition to REST API from using AMX API. GUI team is working closely with the REST team to make this feasible. More information is available at REST API spec 4.2. Bug/RFE Number(s): GUI team is committed to addressing all P1 - P3 bugs. Any Feature or Enhancement request filed will be evaluated on a case-by-case basis. 4.3. In Scope:
- Support for administrative commands in cluster environment
- Support for application deployments in cluster environment
- Support for multiple configurations
- Enhancement to some existing features as time/resources permits.
4.4. Out of Scope:
- HTTP Load Balancer configuration as in v2
- Support for updating and removing packages/components
- Multi Domain administration
- Migrate to ADF
4.5. Interfaces: Interfaces may be commands, files, directory structure, ports, DTD/Schema, tools, APIs, CLIs, etc. Note: In lieu of listing the interfaces in the one pager, providing a link to another specification which defines the interfaces is acceptable. 4.5.1 Exported Interfaces
Interface |
Stability |
Package Name |
Comments |
ConsolePluginService |
Evolving |
org.glassfish.api.admingui.ConsoleProvider |
Java API |
Integration Point |
Evolving |
|
XML-based Admin Console Integration File, OSGi, and through JSFT syntax |
4.5.2 Imported Interfaces
4.5.3 Deprecated/Removed Interfaces: 4.6. Doc Impact: The Online Help doc set needs to be updated accordingly. Additional content will be needed for pages that needs to reflect clustering support. New help content for new pages that did not exist in GlassFish v3 but were added in this release. No new plugin package anticipated at this point, so no new doc set is expected. Other docs that refers to administration using the GlassFish Admin Console may need to include information on how clustering is support achieved in the GlassFish Admin Console. 4.7. Admin/Config Impact: Each sub-projects must expose their configuration or commands via the REST API in order for the GlassFish Admin Console to provide administrative support. There will be changes needed in CLI to support GUI. Any CLI changes will need AS Arch approval. All information is captured in [ GuiRestRequirement wiki page |GuiRestRequirements] this wiki page. 4.8. HA Impact: None. 4.9. I18N/L10N Impact: Localization of Admin Console is needed. This includes all the Strings.properties files as well as the context sensitive on line help set. If the REST API is going to participate in localization of content, then the REST API must be capable of accepting the user's preferred locale and returning meta-data that includes the translated strings with the data itself (or some similar solution). If this is done, all REST clients could benefit from centralizing the I18N Strings, although this changes the location in which much of the I18N content is specified for the Admin Console. 4.10. Packaging, Delivery & Upgrade: 4.10.1. Packaging A new GUI plugin module will be introduced in 3.1 for supporting the clustering feature. This will be part of glassfish-cluster IPS. Refer to the 3.1 Packaging project. This defines how 3.1 sub projects are packaged and delivered. The Admin Console Modules page also has listed all the different plugin modules and how they are delivered. 4.10.2. Delivery Same as in v3. Installation will include Admin Console in both the .zip and installer distributions. 4.10.3. Upgrade and Migration: We don't anticipate any impact on upgrade or migration. 4.11. Security Impact: Admin Console will continue to use form authentication as in previous release. We will also need to authenticate the user with the REST API (see REST API spec). We will be perform security testing to identify XSS and other vulnerabilities and fix any significant security risks. 4.12. Compatibility Impact None. 4.13. Dependencies: 4.13.1 Internal Dependencies Admin Console 3.1 heavily dependent on the Admin Infrastructure backend and the REST API. It is important to work with the admin infrastructure and REST API team very closely to resolve any backend issues effecting our implementation. 4.13.2 External Dependencies Refer to the table above regarding Imported Interface. That lists out all our dependencies. 4.14. Testing Impact: There are currently about 50 dev tests that test out the functionality of Admin Console for 3.1 Additional dev test will be written as we finish implementation of each feature. QA has test plan for v2 clustering support, the test case listed there should probably be reused, such as application deployment, create/start/stop cluster, instances etc. Automated testing from QA for testing v3 Admin Console may need to be modified since some pages will have extra UI such as target section. Automated testing from QA for testing v2 clustering will need to be modified as the component name of each page has changed and there is no frameset in GlassFish 3.1 as previously existed in GlassFish v2. 5. Reference Documents: List of related documents, if any (BugID's, RFP's, papers).
6. Schedule: 6.1. Projected Availability: Refer to Project Page for committed delivery for each Milestone.
|