Integration Patterns
The vSphere Web Client offers integration patterns that go beyond look and feel. Incorporate your solution into these patterns to make interacting with your solution as seamless as using a native client operating "within a single pane of glass."
Use the Integration Compliance checklist to evaluate your solution integration.
Creating Your Solution Home
Your solution's home must include a Getting Started tab, which briefly introduces your solution and links to common workflows. Other tabs at the home level are optional.
Adding Your Solution Inventory
An inventory is a structure used by the vCenter Server to organize managed objects. Two types are available: trees and lists. In an inventory tree, users traverse a hierarchically arranged collection of objects. In an inventory list, users browse objects by type, as shown below.
You can either create your own solution inventory or add your objects an existing inventory. Follow these guidelines:
- Create an inventory if your solution has four or more types of objects. You can add your solution to the Home (top-level) of the Navigator so that it appears side-by-side with the links to the vCenter and vCenter Orchestrator solutions. Your one link at the top-level must navigate to your solution home in your inventory.
- Add to an existing inventory if your solution has three or fewer object types, and its content is related to an existing solution. For example, if your solution has a list of hosts, add your inventory the vCenter inventory. Your launch point goes on the vSphere Web Client Home page (and not the top-level of the Navigator).
Creating Your Solution-Specific Object List
For each object type you introduce into the inventory, you'll need a view of its objects and the actions that users can perform on them. This solution-specific view of objects goes in a single tab labeled "Objects." For example, you might create an Objects tab that lists the hosts made only by your solution (and not by other vendors).
Organizing Your Object Data Into Tabs
The data for your solution's objects must fit into the common tab structure: Summary, Monitor, Manage, and Related Objects.
Follow these steps.
- Start with the Related Objects tab.
Provide a list of each type of object that has a 1-to-many (peer or children) relationship with the open object.
- Add a Summary tab.
On this tab, provide a "Related Objects" portlet that lists objects that have a 1-to-1 (parent-child) relationship with the open object. You now have a consistent setup that supports navigation.
- Think about your managing and monitoring use cases.
Many of these use cases might already be supported on the Related Objects tab. For example, adding and removing objects and monitoring individual state are covered on the Related Object tab. If your managing and monitoring use cases are already covered, your setup is complete. Otherwise, continue to step 4.
- Place management tasks on the Manage tab.
This tab is where users edit the settings of the open object. The tasks on this tab go beyond adding and deleting related objects (which users can do on the Related Objects tab). For example, editing the settings of an object goes on the Manage > Setting tab and editing the failover order of networks goes on the Manage > Networking tab.
- Place monitoring use cases on the Monitor tab.
This tab is where users monitor the status of the open object. This tab supports use cases that require the aggregation or rollup of information, the display of information over time, and rich data visualization. For example, use the Monitor > Resources tab to aggregate information about the total number of resources.
- Summarize managing and monitoring information on the Summary tab.
Add portlets that roll up information from the Manage and Monitor tabs. From these portlets, link to the Manage and Monitor tabs. Don't put everything on the Summary tab. Also, everything on the Summary tab must appear on another tab. Your object views are now complete. The final three steps are for checking your work.
- Check that your Manage and Monitor tabs do not duplicate the Related Objects tab.
No datagrid on the Manage or Monitor tab should be identical to a datagrid on the Related Objects tab. Either remove these datagrids from the Manage and Monitor tabs or provide the data in a richer format, such as an aggregation, rollup, or visualization.
- Verify that the information on the Summary tab appears on other tabs.
The Summary tab should roll up key details from other pages, and not present unique data.
Defining Columns in a Datagrid
Your solution can use datagrids to display lists of objects and their common attributes. As the designer, you should define the columns of data to display in a datagrid of your objects. The first column is always the name of the object. You can also add columns to a datagrid of another solution's objects.
Promoting Your Actions
Give your important or frequent actions their own place in in the Actions menu for your objects and in a datagrid toolbar. For example, adding an object to the inventory is a primary workflow--facilitate this for your users by including the "New" action in the Actions menu and toolbar.
Enabling Editing
To prevent users from accidentally changing a value, data in the main content area is read-only. To enable editing, your solution must open the data in a wizard or dialog.
Integrating Into Work in Progress
Your users are interrupt-driven and support multiple tasks in multiple domains. Facilitate this work style by designing wizards and dialogs to be minimized to the Work in Progress portlet. In a minimized window, the changes users make are saved, but not applied. Users can resume the task upon reopening the dialog.
Integrating With Services
The vSphere Web Client offers several services that developers should make use of for more complete integration:
- Data Service for getting data and limited search
- SSO service for authentication across sites
See the vSphere Web Client SDK documentation.
Adding Tasks and Alarms
You can integrate your content into the tasks by interfacing with the appropriate vCenter service. Your solution cannot integrate with Alarms, but rather must show its own alarms.
Incorporating Search and Tags
Your users will look for your inventory objects by using search and tags. vSphere Web Client uses a standard search mechanism, which you should make a consistent, reliable part of your solution.
The tag metadata helps users to classify objects in ways that they find useful and enables them to find the objects again by searching. Allow for the tagging of objects broadly across your solution, for example, by including the Assign Tag action in the Actions menu of the object.
When documenting your solution, advise users not to tag objects with data that is already available. For example, vSphere Web Client keeps track of whether a virtual machine is powered on or off, so users should never tag an virtual machine with "Power On." If the virtual machine is powered off, the state of the virtual machine and the tag become out of sync.
Providing Feedback
Don't leave your users guessing. Apply these built-in feedback mechanisms:
- Use notifications to quickly inform users about the life cycle of tasks they've initiated and when data is not up to date.
- Provide data-entry validation information directly where it's needed, near input fields.
- Verify that every error message explains how to correct the error.
- Provide assistance where users, especially new ones, need it. Place brief instructions directly in the UI, place tooltips on toolbar controls, and open signpost help when a longer explanation is needed. Also, provide intelligent default values.