Best Practices for
Plug-In Modules Implementation
Following general
design and development recommendations is the first step in creating
high-performance and secure
vSphere Web Client
extensions. You can then move on to special areas, such as
developing HTML-based extension solutions.
- Your plug-in package must be OS agnostic. You must avoid reading and writing on the file system from thevSphere Clientservice layer. In case you need to temporarily store files, you must use the browser cache or your own back-end server.
- To provide a consistent end-user experience in case yourvSphere Clientextension migrates server workloads, make sure that your extension migrates only to vSphere environments that are hosted by a VMware vCloud Air Network Service Provider. For more information about the available service providers, see http://vcloudproviders.vmware.com/find-a-provider.
- Avoid using deprecated or private APIs and extension points. Using deprecated APIs in yourvSphere Clientextensions will prevent them from working with future versions of thevSphere Client.
- To prevent performance problems in thevSphere ClientandvCenter Serverinstances, use your Java services only for communication between thevCenter Serverinstances, or other remote data sources, and the user interface layer. You must not create thread pools in your Java services. Consider implementing any complex business logic in your own backend servers.
- Avoid caching data in the Java service layer. Make sure that thevSphere Clientremains stateless. To ensure the scalability of thevSphere Client, you must use your backend server to cache data.
- To increase the security of your extensions, you must limit the access to your plug-ins to specific users. Use theplugin.xmlextension definition to control the user access to your extensions based on their privileges. For example, you can make your extensions available only to users who have privileges to create or delete Datastore objects.
- To achieve optimal scalability and performance for yourvSphere Clientplug-ins, your Java services must not require any significant heap allocation.