One Pager: Admin Console

Table of Contents
1. Introduction

1.1 Project/Component Working Name
1.2 Name(s) and e-mail address of Document Author(s)/Supplier
1.3. Date of This Document
2. Project Summary
2.1 Project Description
2.2 Risks and Assumptions
3. Problem Summary
3.1 Problem Area
3.2 Justification
4. Technical Description

4.1 Details
4.2 Bugs/RFE's
4.3 Scope
4.4 Out-of-scope
4.5 Interfaces
4.6 Documentation Impact
4.7 Configuration/administration Impact
4.8 High Availability Impact
4.9 Internationalization
4.10 Packaging
4.11 Security Impact
4.12 Compatibility
4.12 Dependencies

5. References
6. Schedule


1. Introduction

1.1. Project/Component Working Name

Admin Console for Glassfish v2

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

Anissa Lam    anissa.lam@sun.com

1.3. Date of This Document

Aug 9, 2006

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.


2.2. Risks and Assumptions

Glassfish v2 Admin Console is planned to be compliant with HCI-Admin guidelines version 2.2.  The assumption is that this guideline will be stable and will not change significantly from previous release.

GUI will be using the Woodstock components, the JSF-based component set.   Woodstock project is under development  and scheduled to be released on Oct, 2006.   GUI  depends on this project  and their commitment to fix any bugs that blocks GUI release. 

GUI is written on top of  jsftemplating framework, which is a java.net open source project.  It is assumed that jsftemplating will continue to evolve with features to support GUI.

Almost all the features and enhancements depends on backend support, that MBean API or AMX API will be provided.

3. Problem Summary

3.1. Problem Area

Admin GUI needs to provide support for configurations that currently is only available through command line interface.   Graphic visualization of monitored data,  charts that help to analyze errors, time break down graphs that help understand performance issues, and statistics that shows the health of cluster are all useful features that are missing today.

3.2. Justification

This release will add features and enhance existing features of the Admin GUI to allow an administrator to accomplish nearly all administration tasks from the Admin GUI via a consistent interface.  The Admin GUI will be enhanced to administer more areas of the product such as clusters and GMS.

Graphical visualization of the monitored data, log error analyzer, creating and configuring jmx monitors all allows administrators to monitor the Application Server effectively.  These features and enhancements will improve Glassfish's competitive market advantage by meeting and sometimes exceeding competitors feature sets.


4. Technical Description

4.1. Details

   Log Error Analysis

This  functionality would perform in-memory error analysis by keeping count of the error statistics. Depending on the user query, disk accesses may not be necessary.  With this backend support, GUI will present:

  • Error statistic graph for past 'n' hours.  Admin GUI will display a bar chart showing the number of severe/warnings per hour. This will be available for every server instance.  User can click on a specific bar to get the error report for that  particular hour.    If the statistic is kept for more than 10 hours, an overview of the entire time period will be shown (refer to figure1).    User can click on any portion of the graph to get to a more specific time period (see figure2). 
  • Error report for specific hour.   This will be presented as a pie chart showing the error distribution.  Eg, the pie chart may have 4 sections, each representing the error count for a specific  module.  User can click on a specific section to get more details.  (refer to figure3)
  •  log viewer for specific instance and time.  When user click on  a specific section of a pie chart, the actual log records corresponding to the errors for that specific module of that specific hour will be displayed in a log viewer.

The information presented by the graph will be displayed in a table in the same page.  This will help us to be 508 compliant.  As drill  down graph by clicking on the graph itself may not be 508 compliant, user  interface to retrieve more data or display another chart will follow HIE guideline.

    Presentation of Monitored data

Presentation of monitored statistic will be enhanced in this version of GUI.  This can be divided into 2 efforts.  One is a better text presentation.  Currently, the statistic is available in text format, and for the mbeans that has lots of attributes for monitoring, the page shown is long and user has to scroll up and down the page to view the info.  This will be re-designed and present to the user in a easily readable table format. 

Another is showing the statistic in a graphical view.  User should be able to select a particular monitorable attributes and the data will be presented in a real time chart.  However, since it may not make sense to have charts for all attributes, this feature will be provided for some only.  This list of attribute will be determined later as we get more input from the backend.  note: real time graph of statistic may not be implemented for this release, it will be depending on the resource available.

Graphing library

Admin GUI will be using JFreeChart as the graphic component for drawing the charts.  JFreeChart is an open source Java class library for generating charts, including  pie charts, bar charts, line, area or combination charts etc.  The generated chart can be saved or exported in different format. There is a PNG encoder that can encode the chart to png format.   Admin GUI will have a servlet that will send the image over to the browser for display.  Image maps and tool tips will be generated to enhance user experience.

cluster information enhancement

For this release, user can tell if an instance of the cluster has failed or stopped.

Deployment Process enhancement

The deployment of applications and modules will be rewritten for better user interface.  Progress bar will be added to this functionality.

Support for  connector Pool Enhancement

Please refer to the one pager of connector pool enhancement for  information regarding the proposed feature.
GUI will enhance the creation of jdbc resource or connector resource.  Currently there is a link in the resource creation page for user to create the connection pool if needed.   Enhancement will be made such that after the user finished creating the connection pool, they will be back in the resource creation page to finishing up the resource creation.
To support the cluster pool feature,  the current drop down list for pool-name will be changed to a scrollable list box, listing all the available pools thats available, allowing for mulitple selection.
To support additional properties of the pool, the current property table will be replaced with 3 tables, - mandatory, sun-specific  and jdbc-driver-specific table.   During editing, there will be 3 additional tabs showing each table.

JBI Integration

JBI web console will be integrated into Admin Console for this release.  There will be an additional node in the navigation tree that points to the JBI pages.    The following JBI tasks will be supported:
Manage JBI Deployments
List Deployed Service Assemblies (SAs)
Show Service Assembly Details & Metadata
Deploy & undeploy SA
operate an SA
Manage JBI Components
List installed Binding Components & Service Engines (BCs/SEs)
Show BC or SE Details and Metadata
Install & uninstall BC or SE
Operate a BC or SE
List installed shared libraries & show details

AJAX enhancement

This version of Admin Console will be moving to use the JSF based Woodstock components.  This will allow us to add AJAX functionality.   This version of Admin Console will be using AJAX in the following pages and more depending on the schedule.
Deployment wizard:   Progress bar and the FileUpload components which gives AJAX functionality will be used.
Web Service statistics page:   The statistic will be updated using AJAX
Monitoring data page will be using AJAX to show statistic thats available.

4.2. Bug/RFE Number(s)

// List any Bug(s)/RFE(s) which will be addressed by this proposed change.
// Provide links to the Issue tracker Bug(s)/RFE(s)where possible

4.3. In Scope

// Aspects that are in scope of this proposal if not obvious from above.

4.4. Out of Scope

// Aspects that are out of scope if not obvious from above.

4.5. Interfaces

// Interfaces are a major part of Architectural review.
// Commands, Files, Directory Layout, Ports, DTD/Schema, admin tools,
// config files, APIs, CLIs, and almost anything that is externally
// observable is an interface. In 1-Pager it is necessary to document
// any interface that can be used by external projects and products.
// Documented public interfaces must be assigned a stability level.
// Some commonly used Stability levels in prior projects are:
//
// Stable : Widely used public interface. changed very rarely.
//
// Standard : Defined by a standards body (e.g: JDBCv3). Rare but
// incompatible clarifications and changes could occur
// in a standard. Product will specify version of std
// supported. J2SE, J2EE and WS* are classified
// as Standard.
//
// Evolving : Subject to carefully controlled but possibly
// incompatible change at a major or minor release.
// When a change is made all efforts will be made
// to address incompatiblity and migration. All
// incompatibilities will need to be reviewed
// and approved by as-ccc@sun.com.
//
// Unstable : Early access, subject to unrestricted degree of
// change. A few App Server interfaces are classified
// as Unstable. Docs must call out exported unstable
// interfaces. Be wary of importing Unstable interfaces.
//
// External : Defined external to GlassFish Application Server,
// but not by a Standards body. Suitable for describing
// other freeware, open source interfaces.
//
// http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/
// describes the permitted interface taxonomy.

Admin GUI depends on admin infrastructure for a lot of functionality.  As a result, it imports most of the interfaces documented for the application server.

4.5.1 Exported Interfaces

None.


4.5.2 Imported interfaces

Interface Stability Exporting Project: Name, Specification or other Link. Comments
 Woodstock components
Unstable
   
jsftemplating
external
https://jsftemplating.dev.java.net/

jfreechart
external
http://www.jfree.org/jfreechart/

 

4.5.3 Other interfaces (Optional)

// Any private interfaces that may be of interest?

Interface Stability Exporting Project: Name, Specification or other Link. Comments
       

 

4.6. Doc Impact

Administration guide will have the biggest impact as it needs to include chapters regarding the new configuration support.  The online help Admin GUI has to be updated to include all the new functionality and enhanced features.  It will also need  to integrate with the JBI help doc.  Inline help for all the new screens is needed.

4.7. Admin/Config Impact

This change will enhance the administration of glassfish.

4.8. HA Impact

None

4.9. I18N/L10N Impact

 All the additional messages, screen labels, online and inline help  needs to be internationalized.

4.10. Packaging & Delivery

The Admin GUI application will be part of the application server.  The application will reside in the following directory: <install-root>/lib/install applications/admingui The application will be deployed as an exploded .war file and the directory structure would represent a web module. 

4.11. Security Impact

None.

4.12. Compatibility Impact

None.

4.13. Dependencies

We are heavily dependent on the Admin Infrastructure backend APIs.   It is important to work with the admin infrastructure team very closely to resolve any backend issues affecting our implementation.  We will need the assistance of HIE to ensure we are meeting HCI-Admin guidelines and can pass UIRB reviews

5. Reference Documents

// List of related documents, if any (BugID's, RFP's, papers, Blogs).
// Explain how/where to obtain the documents, and what each
// contains, not just their titles.

6. Schedule

6.1. Projected Availability

Follow the schedule for Glassfish v2