A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This application is related to the following co-pending applications which are hereby incorporated by reference in their entirety:
SYSTEMS AND METHODS FOR PORTAL AND WEB SERVER ADMINISTRATION, U.S. Application No.______, Inventors: Christopher E. Bales, et al., filed on______. (Attorney's Docket No. BEAS-1371US1)
SYSTEMS AND METHODS FOR NAVIGATING A GRAPHICAL HIERARCHY, U.S. Application No.______, Inventors: Christopher E. Bales, et al., filed on______. (Attorney's Docket No. BEAS-1372US0)
SYSTEMS AND METHODS FOR CONTEXT-SENSITIVE EDITING, U.S. Application No.______, Inventors: Christopher E. Bales, et al., filed on______. (Attorney's Docket No. BEAS-1373US0)
SYSTEMS AND METHODS FOR PERSONALIZING A PORTAL, U.S. Application No.______, Inventors: Christopher E. Bales, et al., filed on______. (Attorney's Docket No. BEAS-1381US0)
The present disclosure relates generally to graphical system administration tools that are extensible by third parties.
Conventional graphical tools for performing administration and management of network accessible resources can allow for the recognition an integration of new resources as they arise. However, conventional tools typically integrate new resources into a general-purpose graphical user interface. What is desired is an administration and management tool with a graphical user interface that can easily be custom tailored to each resource.
The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.
In one embodiment, a user interface provides a means for a user to interact with one or more processes that are operable to configure and manage portals and/or web servers. By way of a non-limiting example, a user interface can include one or more of the following: 1) a graphical user interface (GUI); 2) an ability to respond to sounds and/or voice commands; 3) an ability to respond to input from a remote control device (e.g., a cellular telephone, a personal digital assistant, or other suitable remote control); 4) an ability to respond to gestures (e.g., facial and otherwise); 5) an ability to respond to commands from a process on the same or another computing device; and 6) an ability to respond to input from a computer mouse and/or keyboard. This disclosure is not limited to any particular user interface. Those of skill in the art will recognize that many other user interface embodiments are possible and fully within the scope and spirit of this disclosure.
This document describes how to extend an administration console (or “console”). By doing so, a user can create their own control panels that appear along with the standard console control panels. The administration console is a browser-based graphical user interface that can be used to manage a application/web servers. The Administration Console is extended by adding control panels and navigation elements that appear along with the supplied system screens. A console extension can provide functionality not included in a standard administration console or an alternate interface for existing functionality. For example, a console extension can:
The administration console can include a navigation tree 100. In one embodiment, the navigation tree is a Java applet that allows users to navigate among the console control panels. The navigation tree can include one or more nodes 104. A node can contain other nodes or can call control panels that are displayed in the right pane of the console. A console extension can add one or more nodes to the navigation tree. Although two levels of tabbed dialogs (106 and 108) are illustrated, up to N-levels of tabbed dialogs are supported. Control panel 102 is displayed when a user selects one of the tabbed dialogs or tree nodes. Control panels are where the functionality of a console extension appears.
In one embodiment, To create a console extension, a user can create the following programmatic elements:
Add an import statement for the MBean class associated with the user console extension. The navigation tree node where a user access a user console extension appears is a child of the node for this Mbean. For example:
Add an import statement:
If required for the functionality of a user console extension, a user may want to add the following import statements:
Add a public constructor, without arguments. For example:
Define the getNavExtensionFor( ) method. When the Administration Console initializes itself, it calls this method, passing in the name of the associated MBean as the Object argument as it constructs each node of the navigation tree. In this method, test to see if the Object argument is an instance of the MBean associated with a node under which a user console extension should appear. If the Object is an instance of this MBean, the method should return a URL to a JSP page that defines the behavior of the node in the navigation tree, otherwise the method should return null. For example:
In the above example, when the system constructs a node for the DomainMBean it can invoke this method, passing in the name of a Domain as the Object argument. Because the Object is an instance of the DomainMBean, the method returns the URL domain_navlink.jsp. The System.out.println statements are optional and serve only to display the message to standard out.
In one embodiment, the getNavExtensionFor ( ) method can return a URL for each console extension node that appears in the navigation tree. This URL can point to a JSP that defines the behavior of this node. In this JSP, the following can be defined:
In one embodiment and by way of a non-limiting example, to create a JSP that defines a navigation tree node:
Add a taglib statement, e.g.:
(Optional) If a user need access to an object in this JSP, add the following JSP tag:
Where MyObjectClass is the Java class name of the object a user want to access.
Add one or more <wl:node> tags. These tags describe nodes that appear in the navigation tree. A user can nest <wl:node> tags to create child nodes. The following attributes of the <wl:node> tag can be used to define the appearance and functionality of a node: url, label, labelId, icon, expanded, target, and font. The label attribute defines the displayed name of the tab. If a user want to localize this name a user can use the labelId attribute to look up the name in the localization catalog. The icon attribute points to an image file and displays the image as an icon for this node in the navigation tree. For example:
In one embodiment, the above code fragment will result in the navigation tree nodes 400 shown in
Add one or more <wl:menu> tags to create right-select menu options. The following attributes can be defined for the <wl:menu> tag: label, labelId, url, and target. In one embodiment and by way of a non-limiting example, to add <wl:menu> tags to the “Localization Examples” node defined in the previous example in previous step, use the following code:
In one embodiment, the above code creates the right-select menu 402 shown in
In one embodiment, control panels for the console extension can appear in the right pane of the console when an extension's node in the navigation tree is selected. To create the control panels in one embodiment, a user write a JSP using a supplied JSP tag library. The JSP that is displayed is determined by the url attribute of the <wl:node> tags in the JSP. The dialog screens can also include one or more tabbed dialogs that can be defined with the <wl:tab> JSP tag. These tabs can also contain nested sub-tabs. Each tab has a text label that a user can specify explicitly or, a user can specify a label ID that a user can use to look up a localized version of the tab's label in a localization catalog. With in each tab (that is, within a pair of <wl:tab> . . . </wl:tab> tags) a user can use JSP and HTML coding to create the functionality of a control panel. Any text that appears in these can also be localized by looking up text from a localization catalog.
It will be apparent to those of skill in the art that there are a variety of well known programming techniques to create the user interface of a user extension. These techniques, although not discussed, are within the scope and spirit of the present disclosure. In one embodiment, and by way of a non-limiting example, the following procedure can create a basic JSP that displays a control panel for a console extension:
Insert this taglib statement at the top of the JSP file:
Insert HTML and JSP blocks into the JSP file. The display of a user console extension is defined by HTML code and JSP code that is translated into HTML code, therefore wrap a user display code in the following set of HTML tags:
The <wl:stylesheet/> tag in the <head> . . . </head> block is optional. When included, this tag formats a user text so that it is consistent with standard Server Administration Console pages.
The HTML and JSP code that displays the body of a user console extension dialog screen can be included within a <wl:tab> block. A user can also localize the label displayed for the tab. In one embodiment and by way of a non-limiting example, the following code creates two top-level tabs, each containing two nested tabs (see
A JSP tag library can be used to create console extensions in one embodiment. The tag library allows a user to:
The <wl:node> tag can be used to create new nodes in the Administration Console navigation tree in one embodiment. The following example demonstrates the usage of the <wl:node> tag:
In one embodiment, the <wl:menu> can be used to create menus and actions that users access by right-selecting on nodes in the navigation tree defined with the <wl:node> tag. The <wl:menu-separator> tab inserts a separator line in the right-select menu.
The above code creates a right-select menu under the “My 2nd Nested Node” entry in the navigation tree.
In one embodiment, the <wl:tab> tag can be used to create a tabbed interface in a user console extension. A user can create nested tabbed screens by nesting a <wl:tab> tag within another <wl:tab> tag. N levels of nesting are supported. The following example demonstrates the usage of the <wl:tab> tag:
In one embodiment, the <wl:dialog> tag can be used to demarcate a section of a JSP that defines tabbed console screens. <wl:tab> tags appear with in a <wl:dialog> block.
In one embodiment, the <wl:stylesheet> tag can be used to specify that a user control panels use the same display styles (fonts, colors, etc.) as the standard Administration Console.
In one embodiment, the <wl:extensibility-key> tag can be used to create a scripting variable that represents a Java object. A user can use this tag in the JSP that defines the Navigation tree.
In one embodiment, the <wl:text> tag can be used to display text from the localization catalog. For example:
One embodiment may be implemented using a conventional general purpose or a specialized digital computer or microprocessor(s) programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.
One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.
Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and applications.
The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention, the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.