Best Practices for Gadget Development

Each new gadget adds more load to the Cisco Finesse server and caution must be observed when adding gadgets to all users. Gadgets must comply with certain performance guidelines to allow the best possible performance, which results in faster Cisco Finesse failover.

For more information on deployment practices and guidelines to ensure optimal failover performance, see Guidelines for Optimal Desktop Failover and Failover Planning sections in Cisco Finesse Administration Guide at https://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-maintenance-guides-list.html.

Note

In Unified CCE, Cisco Finesse deployments with more than eight gadgets per agent for the maximum supported 2000 users, must deploy the Cisco Finesse OVA with 8 CPUs to ensure faster failover time.

The actual number of gadgets that require the Cisco Finesse OVA with 8 CPUs depends on the gadgets and the number of requests that they invoke. In Unified CCE, Cisco Finesse deployments must be monitored for CPU consumption.

General Gadget Development Guidelines

The following are the general gadget guidelines that are applicable for both gadgets uploaded in Cisco Finesse 3rd party folder and gadgets hosted in 3rd party servers.

  • Use XML-based gadget URLs instead of dynamic JSP-based gadget URLs to prevent extra calls to the Finesse server.

  • Bundle and pack the resources for faster downloads.

  • Use finesse.min.js, which is compressed and smaller in size over finesse.js.

  • Prevent loading the Finesse desktop with bypassServerCache=true&nocache as a query parameter in the desktop URL.

  • Ensure static resources used by the gadget is cached by the browser.

  • External gadget hosting servers must prefer CA-signed certificates for easy integration with the browser. If they are self-signed, then import those certificates into the agent browser.

    For more information, see Accept Security Certificates section in Cisco Finesse Agent and Supervisor Desktop User Guide at https://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-user-guide-list.html.

  • Gadgets must cache configuration data retrieved after the gadget load, and reuse them after failover using DesktopCache JavaScript API. Use the DesktopCache JavaScript API to prevent calls being made to the external servers during failover.

Guidelines for Gadgets Uploaded to Finesse 3rdpartygadget Account

  • Application data that are not susceptible to change across sessions can be cached in the browser using DesktopCache API and reused.

  • Add exclusions for finesse.js and the 3rd party JavaScript files in the gadget XML.

Guidelines for Gadgets Hosted on 3rd Party Servers

  • If a gadget is loaded from a 3rd party server, then make REST API calls directly to that server without proxying the requests through Shindig (avoid gadget.makeRequest() calls).

  • Load the static data as scripts or HTML and not as active-content (JSP files).

Guidelines for JSP Gadgets

  • Efficient failover requires converting all the JSP-based gadgets to XML-based gadgets.

  • In Unified CCX Release 12.5(1), all the CUIC and LiveData gadgets are converted to XML-based gadgets.

  • In Unified CCE, after upgrading CUIC to Release 12.5(1) use the CLI command utils finesse layout updateCuicGadgetUrl to change the JSP references of CUIC gadgets to XML with no functional changes.

    For more information, see Cisco Finesse Administration Guide at https://www.cisco.com/c/en/us/support/customer-collaboration/finesse/products-maintenance-guides-list.html.

Note

The webproxy in Cisco Finesse cannot cache any JSP content.

Gadget Deployment Guidelines

  • Verify the new gadgets by accessing a configured layout using nocache query parameter in the desktop URL.

  • When gadgets are successfully deployed, access the changed layout to verify the gadgets.