SlideShare a Scribd company logo
vSphere UI Platform Best Practices: Putting the Web
Client SDK Into Action
Max Daneri, VMware
Laurent Delamare, VMware
Nimish Sheth, VMware
TEX4845
2
Disclaimer
 This presentation may contain product features that are currently
under development.
 This overview of new technology represents no commitment from
VMware to deliver these features in any generally available
product.
 Features are subject to change, and must not be included in
contracts, purchase orders, or sales agreements of any kind.
 Technical feasibility and market demand will affect final delivery.
 Pricing and packaging for any new technologies or features
discussed or presented have not been determined.
3
Agenda
 Review of vSphere Web Client architecture and extensibility
 Plugin development experience from the field
 SDK 5.5 changes
 Roadmap
4
vSphere Web Client (VWC) Architecture Overview
VWC main characteristics for plugin developers
 Open platform with a true web architecture
 Extensibility at its core
• UI extensibility
• Data extensibility
 Easy to build a unified user experience
• Consistent look & feel
• Data mash-ups
 Rich SDK and developer tools
5
vSphere Web Client Architecture Overview
3-Tier Architecture
App Server
Solution 1Solution N
Backend for
Solution AvCenter
Server
vCenter
Server 1
Web Client (Flex)
Mid-tier app server (Java)
Access to vCenter and
other backend services
App Server
App Server
6
Leveraging the UI and Java Platforms
vCenter 1.. N
Back-end Server
or Database
VWC UI plugins 3rd party plugins
• Plugin Architecture
• MVC Framework
• Data Access API
Web Client
App Server
(stateless) 3rd party services
• Data Manager
• Session Manager
• OSGI services
Java remoting (BlazeDS)
through secure AMF channel
vSphere Web Service SDK
Or any remote access to backend
Direct access is
possible but not as
well integrated
• Extension points
• Java services proxy
• Dependency injection
VWC services
VWC
platform
VMware
components
UI Platform
Java Platform
Partner
solutions
Back-ends
7
Data Extensibility & Client Commands
VM UI
Data Services
VM Service
myPlugin Adapter
Host UI
myPlugin UI
VC Adapters
Data Access Framework
myPlugin Service
vCenter 1.. N
(inventory service)
Back-end Server
or Database
Data Request
Events
Normalized
queries
Service calls
VWC
platform
VMware
components
Partner
solutions
Dispatching
Queries to back-ends
Aggregated
results
Web
Client
App
Server
Java to back-ends
Java Services Proxy
No complex business
logic
in server plugins
8
Extensibility Framework
Design Goals
 Promote extensibility by design rather than implementation
 Enable UI customization, consistency and easy navigation
 Keep optimal footprint
• Lazy loading of metadata, resources & code modules
9
Extensibility Framework
Key Concepts
 Extension Point
• Declaration of an extensible feature
 Extension
• Implements an extension point
 Plugin
• Bundle of metadata, code
and resources
 Plugin package
UI plugin bundle1 (.war)
UI plugin bundle2 (.war)
Java service bundle3 (.jar)
Data adapter bundle4 (.jar)
3rd party library X (.jar)
plugin-package manifest (.xml)
my-packaged-solution (.zip)
10
Packaging & Deployment
Example of a plugin-package manifest
<pluginPackage id="com.vmware.samples.viewspropertiesui"
version="1.0.0"
name="Views Sample”
vendor="VMware" >
<dependencies>
<pluginPackage id="com.vmware.vsphere.client" version="5.5.0" />
</dependencies>
<bundlesOrder>
<bundle id="com.vmware.wsvim25" />
<bundle id="com.google.gson" />
<bundle id="com.vmware.samples.custompropertyprovider" />
<bundle id="com.vmware.samples.custompropertyui" />
<bundle id="com.vmware.samples.viewspropertiesui" />
<bundle id="com.vmware.samples.wssdkprovider" />
<bundle id="com.vmware.samples.wssdkui" />
</bundlesOrder>
</pluginPackage>
11
Packaging & Deployment
How do you deliver your new plugin to users?
1. Create a plugin-package .zip
2. Provide a script to register the plugin as a vCenter extension,
with a URL pointing to the plugin-package .zip location.
3. When a new user session starts, VWC finds your plugin and hot-
deploys it to the app server if necessary.
What about new versions?
 Only the latest version of the plugin is deployed.
 When a newer plugin version is registered the older one is
un-deployed automatically.
12
Extension Templates
 A collection of pre-defined extension points and extensions
 Out-of-the-box templates
• Instantiating an object workspace for new object types
• Instantiating a summary view
<!-- Chassis object view template instance.
Defines the object workspace (right hand side) for the Chassis object. -->
<templateInstance id="com.vmware.samples.chassis.viewTemplateInstance">
<templateId>vsphere.core.inventory.objectViewTemplate</templateId>
<variable name="namespace" value="com.vmware.samples.chassis"/>
<variable name="objectType" value="Chassis"/>
</templateInstance>
13
Extension Templates – Custom object workspace
14
Extension Filtering
 Allows filtering based on runtime conditions
 3 filters
• Object type
• Typically used for actions
• e.g. Show the extension only if the selected object is a VirtualMachine
• Object properties
• e.g. Show the extension only if the VM is FT enabled
• Privileges
• e.g. Show the extension only if the user has a specific privilege
15
Extension Filtering – Type Filter
<extension id="vsphere.core.vm.faultToleranceTurnOnActionSet">
<extendedPoint>vise.actions.sets</extendedPoint>
<object>
…
</object>
<metadata>
<objectType>VirtualMachine</objectType>
</metadata>
</extension>
Example of an action appearing only for VirtualMachine objects:
16
Extension Filtering – Privilege Filter
<extension id="vsphere.core.vm.ftView">
<extendedPoint>vsphere.core.vm.summarySectionViews</extendedPoint>
<object>
…
</object>
<metadata>
<privilege>VirtualMachine.Interact.CreateSecondary</privilege>
</metadata>
</extension>
Example of a portlet extension for users who have a specific privilege:
17
Extension Filtering – Object Property Filter
<extension id="vsphere.core.vm.ftView">
<extendedPoint>vsphere.core.vm.summarySectionViews</extendedPoint>
<object>…</object>
<metadata>
<privilege>VirtualMachine.Interact.CreateSecondary</privilege>
<propertyConditions>
<com.vmware.vsphere.client.filters.PropertyConditionsInfo>
<conditions>
<com.vmware.vsphere.client.filters.ComparisonInfo>
<propertyName>runtime.faultToleranceState</propertyName>
<comparisonOperator>EQUALS</comparisonOperator>
<propertyValue>enabled</propertyValue>
</com.vmware.vsphere.client.filters.ComparisonInfo>
</conditions>
<conjoiner>AND</conjoiner>
</com.vmware.vsphere.client.filters.PropertyConditionsInfo>
</propertyConditions>
</metadata>
</extension>
Portlet extension restricted to VMs with a specific property enabled:
18
Agenda
 Review of vSphere Web Client architecture and extensibility
 Plugin development experience from the field
 SDK 5.5 changes
 Roadmap
19
Demo
 A real life plugin, which displays special VM guestOS information
which is not normally visible in the vSphere Client
20
My Challenges
 vSphere Web Client extensions works in a different manner compared
to .NET client
 vSphere Web Service SDK is used in a different way
• No need for WaitOptions, RetrieveServiceContent and login
 (.NET lovers) .NET UI extensions are not possible, but a plugin can call
an external .NET web service
21
What I Learned from My Mistake
 Start simple – don’t try to start creating complex and fantastic code,
start simple, your self-esteem will thank you
 Don’t reinvent the wheel – everything needed to manage a vSphere
infrastructure is here, no need to develop strange server component
 Read the documentation – example codes are very important but
sometime reading the doc is a must!
22
Agenda
 Review of vSphere Web Client architecture and extensibility
 Plugin development experience from the field
 SDK 5.5 changes
 Roadmap
23
Compatibility Story
 Ground rules:
• vSphere Web Client works with the previous vCenter release
• Plugins are supported for at least one more VWC release
Compatibility w/ vCenter 5.0 vCenter 5.1 vCenter 5.5
VWC 5.1 OK OK No
VWC 5.5 No OK OK
Compatibility w/ VWC 5.1 VWC 5.5
Plugin + SDK 5.1 OK OK
Plugin + SDK 5.5 No (1) OK
(1) Cannot use 5.5 features in a plugin targeting VWC 5.1, otherwise it is OK.
24
SDK 5.5 Changes
 New features
• Solution menus
• A better way to build solution-specific menus
• Action prioritization
• 2 new extension points to order or promote actions
• Finally possible to put a global action in the list toolbar
• AdvancedMouseEvent
• Listen to right-click events in your own widgets
• DisposeManager improvements and new extension point
• You can decide under which namespace your Flex objects will be GC’d
• Dialogs and Wizards
• Wizard data can be saved during the user session or across sessions
• But support limited to 5.5 for now because of upcoming platform changes
25
SDK 5.5 Changes (cont’d)
 Other important changes
• Better samples
• Virgo updated to 3.6
• Spring Framework libraries updated
• Java version 1.7 (compile with target 1.6)
• Flash Player version >= 11.5
• Web-ContextPath must use this format: vsphere-client/plugin-name
• See [SDK]/docs/release-notes.html for all details
 Your plugin package must now include a 5.5.0 dependency
<pluginPackage id="com.acme.acme-plugin" version="1.0.0”
name=”Acme solution” vendor=”ACME">
<dependencies>
<pluginPackage id="com.vmware.vsphere.client" version="5.5.0" />
</dependencies>
...
26
Agenda
 Review of vSphere Web Client architecture and extensibility
 Plugin development experience from the field
 SDK 5.5 changes
 Roadmap
27
SDK Roadmap
 We’re moving away from Flex as UI technology
 Our future HTML 5 platform will preserve your investments
 The Java tier doesn’t change
 You will be able to take several paths during this transition
• Keep using Flex UIs in the short term
• Mix Flex UIs with HTML
• Use only HTML/Javascript
• Stick with C# client Script plugins
28
SDK Roadmap (cont’d)
 Flex UI plugins
• For the short term this is still the best way to integrate your UI with VWC
• The entire vSphere UI suite is using this!
• Will be supported by HTML 5 platform
• Except deprecated APIs
• Columns extensions and portlets have limitations
 Use cases
• Continuing existing investment
• Starting a simple plugin
• Building a UI plugin for vSphere 5.1 and 5.5
 Tips
• Reducing your UI code will make the transition easier
• For complex UIs consider mixing some HTML views
29
SDK Roadmap (cont’d)
 C# client script plugins
• Can use HTML/Javascript
• Limited integration with the Web Client
• Fewer extension points, views displayed in separate tab Classis Solutions
• Security warning because of HTTPS link to external server
• Missing APIs (no callback into Flex)
• No Java service layer
• Will be supported in HTML 5 platform with some exceptions
 Use case
• Re-using or enhancing an existing script plugin
• Writing a new plugin that must also work in the C# client
 Tips
• All new development should focus on true Web Client plugin, with a Java
service layer, and a UI either in Flex or HTML
30
SDK Roadmap (cont’d)
 New HTML/Javascript plugin support
• Coming with the existing VWC 5.5 platform!
• Full SDK support, all extensions are supported 
• Easiest transition to future HTML 5 platform
• Use the HTML widgets and Javascript libraries of your choice
• Add or re-use Java services in the mid-tier
• Possible to mix Flex and HTML
 Beta-release coming soon
31
HTML Bridge Overview
vCenter 1.. N
Back-end Server
or Database
Web
Client
App
Server
• Data Manager
secure AMF channel
vSphere Web Service SDK
UI Flex Platform
Java Platform
PartnersBack-ends
VWC platform
VMware
Any remote access API
Html views invoked by bridge.
Javascript callbacks available
for some Flex APIs
REST apis to get/post
data with java controllers
Integration at the data level
is independent of the UI
rendering technology
VWC UI plugins 3rd party Flex plugins HTML plugins
HTML
Bridge• Data Access API
• Extension points
VWC adapters
3rd party controllers
3rd party data adapters
3rd party services
Controllers get data through
Data Manager, or call
services to access back-end
Solution can mix Flex & Html
HTTPS Ajax
32
HTML Bridge Demo
33
• TAP Access membership includes:
New TAP Access NFR Bundle
• Access to NDA Roadmap sessions at VMworld, PEX and Onsite/Online
• VMware Solution Exchange (VSX) and Partner Locator listings
• VMware Ready logo (ISVs)
• Partner University and other resources in Partner Central
• TAP Elite includes all of the above plus:
• 5X the number of licenses in the NFR Bundle
• Unlimited product technical support
• 5 instances of SDK Support
• Services Software Solutions Bundle
• Annual Fees
• TAP Access - $750
• TAP Elite - $7,500
• Send email to tapalliance@vmware.com
TAP Membership Renewal – Great Benefits
34
 TAP
• TAP support: 1-866-524-4966
• Email: tapalliance@vmware.com
• Partner Central:
http://www.vmware.com/partners/partners.html
 TAP Team
• Kristen Edwards – Sr. Alliance Program Manager
• Sheela Toor – Marketing Communication Manager
• Michael Thompson – Alliance Web Application Manager
• Audra Bowcutt –
• Ted Dunn –
• Dalene Bishop – Partner Enablement Manager, TAP
TAP Resources
 VMware Solution Exchange
• Marketplace support –
vsxalliance@vmware.com
• Partner Marketplace @ VMware
booth pod TAP1
THANK YOU
VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK Into Action
vSphere UI Platform Best Practices: Putting the Web
Client SDK Into Action
Max Daneri, VMware
Laurent Delamare, VMware
Nimish Sheth, VMware
TEX4845

More Related Content

What's hot (20)

PDF
VMware@Night: Container & Virtualisierung
Digicomp Academy AG
 
PDF
Spring to Image
VMware Tanzu
 
PPTX
Maven in mulesoft
venkata20k
 
PDF
Introducing Spring Framework 5.3
VMware Tanzu
 
PDF
Enabling Oracle EM12c-based MWaaS on VMware with the Blue Medora Plugin for V...
Blue Medora
 
PDF
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
Arun Gupta
 
PPTX
Testing Microservices
Anil Allewar
 
PDF
Boston 2011 OTN Developer Days - GlassFish
Arun Gupta
 
PPTX
Maintaining and Troubleshooting your XenDesktop 7.5 Environment
David McGeough
 
PDF
Java EE 6 Clustering with Glassfish 3.1
Shreedhar Ganapathy
 
PPTX
Maven in mulesoft - part 2
venkata20k
 
PDF
Building .NET Microservices
VMware Tanzu
 
PDF
Build automation best practices
Code Mastery
 
PDF
Sitecore development approach evolution – destination helix
Peter Nazarov
 
PPTX
What's New in PowerCLI 5.0
jonathanmedd
 
PDF
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
CodeMill digital skills
 
PDF
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Eberhard Wolff
 
PPTX
WebLogic Administration course outline
Vybhava Technologies
 
PDF
WebSphere Application Server JBoss TCO analysis
Shetal Patel
 
ODP
Large Scale Migration from WebLogic to JBoss
C2B2 Consulting
 
VMware@Night: Container & Virtualisierung
Digicomp Academy AG
 
Spring to Image
VMware Tanzu
 
Maven in mulesoft
venkata20k
 
Introducing Spring Framework 5.3
VMware Tanzu
 
Enabling Oracle EM12c-based MWaaS on VMware with the Blue Medora Plugin for V...
Blue Medora
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
Arun Gupta
 
Testing Microservices
Anil Allewar
 
Boston 2011 OTN Developer Days - GlassFish
Arun Gupta
 
Maintaining and Troubleshooting your XenDesktop 7.5 Environment
David McGeough
 
Java EE 6 Clustering with Glassfish 3.1
Shreedhar Ganapathy
 
Maven in mulesoft - part 2
venkata20k
 
Building .NET Microservices
VMware Tanzu
 
Build automation best practices
Code Mastery
 
Sitecore development approach evolution – destination helix
Peter Nazarov
 
What's New in PowerCLI 5.0
jonathanmedd
 
Containerisation Hack of a Legacy Software Solution - Alex Carter - CodeMill ...
CodeMill digital skills
 
Continuous Delivery, DevOps, Cloud - New Requirements for New Architectures
Eberhard Wolff
 
WebLogic Administration course outline
Vybhava Technologies
 
WebSphere Application Server JBoss TCO analysis
Shetal Patel
 
Large Scale Migration from WebLogic to JBoss
C2B2 Consulting
 

Similar to VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK Into Action (20)

PDF
Creating v sphere client plug ins
Pablo Roesch
 
PDF
VMworld 2013: vSphere Web Client - Technical Walkthrough
VMworld
 
PPTX
VMworld 2015: vSphere Web Client- Yesterday, Today, and Tomorrow
VMworld
 
PDF
Exploring VMware APIs by Preetham Gopalaswamy
Alan Renouf
 
PDF
VMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld
 
PPTX
Getting started vmware apps
rickyelqasem
 
PDF
Partner Presentation vSphere6-VSAN-vCloud-vRealize
Erik Bussink
 
PPTX
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
TIMETOACT GROUP
 
PPTX
IBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCC
BCC - Solutions for IBM Collaboration Software
 
PPTX
VMworld 2015: What's New in vSphere?
VMworld
 
PPTX
VMware vFabric - Webinar with CIO Magazine
Al Sargent
 
PPTX
V mware v fabric 5 - what's new technical sales training presentation
solarisyourep
 
PPT
WebSphere sMash June Product Review
Project Zero
 
PDF
Presentation v mware cloud infrastructure - success in virtualization
solarisyourep
 
PDF
Presentation cloud infrastructure launch – what’s new
solarisyourep
 
PDF
Presentation cloud infrastructure launch – what’s new
xKinAnx
 
PPTX
Whats new v sphere 6
shixi wang
 
PDF
Datasheet was pluginforrd
MidVision
 
PPT
Showcase_Intern
Vishwanarayan Sriganesh
 
PDF
VMware@night - Was ist neu in VMware Horizon View 5.3 und Mirage 4.3
Digicomp Academy AG
 
Creating v sphere client plug ins
Pablo Roesch
 
VMworld 2013: vSphere Web Client - Technical Walkthrough
VMworld
 
VMworld 2015: vSphere Web Client- Yesterday, Today, and Tomorrow
VMworld
 
Exploring VMware APIs by Preetham Gopalaswamy
Alan Renouf
 
VMworld 2013: Extreme Performance Series: vCenter of the Universe
VMworld
 
Getting started vmware apps
rickyelqasem
 
Partner Presentation vSphere6-VSAN-vCloud-vRealize
Erik Bussink
 
Integrate Applications into IBM Connections Cloud and On Premises (AD 1632)
TIMETOACT GROUP
 
IBM Connect 2016: Speaker Session with Teresa Deane, Senior Developer, BCC
BCC - Solutions for IBM Collaboration Software
 
VMworld 2015: What's New in vSphere?
VMworld
 
VMware vFabric - Webinar with CIO Magazine
Al Sargent
 
V mware v fabric 5 - what's new technical sales training presentation
solarisyourep
 
WebSphere sMash June Product Review
Project Zero
 
Presentation v mware cloud infrastructure - success in virtualization
solarisyourep
 
Presentation cloud infrastructure launch – what’s new
solarisyourep
 
Presentation cloud infrastructure launch – what’s new
xKinAnx
 
Whats new v sphere 6
shixi wang
 
Datasheet was pluginforrd
MidVision
 
Showcase_Intern
Vishwanarayan Sriganesh
 
VMware@night - Was ist neu in VMware Horizon View 5.3 und Mirage 4.3
Digicomp Academy AG
 
Ad

More from VMworld (20)

PPTX
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld
 
PPTX
VMworld 2016: Troubleshooting 101 for Horizon
VMworld
 
PPTX
VMworld 2016: Advanced Network Services with NSX
VMworld
 
PPTX
VMworld 2016: How to Deploy VMware NSX with Cisco Infrastructure
VMworld
 
PPTX
VMworld 2016: Enforcing a vSphere Cluster Design with PowerCLI Automation
VMworld
 
PPTX
VMworld 2016: What's New with Horizon 7
VMworld
 
PPTX
VMworld 2016: Virtual Volumes Technical Deep Dive
VMworld
 
PPTX
VMworld 2016: Advances in Remote Display Protocol Technology with VMware Blas...
VMworld
 
PPTX
VMworld 2016: The KISS of vRealize Operations!
VMworld
 
PPTX
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld
 
PPTX
VMworld 2016: Ask the vCenter Server Exerts Panel
VMworld
 
PPTX
VMworld 2016: Virtualize Active Directory, the Right Way!
VMworld
 
PPTX
VMworld 2016: Migrating from a hardware based firewall to NSX to improve perf...
VMworld
 
PPTX
VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...
VMworld
 
PPTX
VMworld 2015: Advanced SQL Server on vSphere
VMworld
 
PPTX
VMworld 2015: Virtualize Active Directory, the Right Way!
VMworld
 
PPTX
VMworld 2015: Site Recovery Manager and Policy Based DR Deep Dive with Engine...
VMworld
 
PPTX
VMworld 2015: Building a Business Case for Virtual SAN
VMworld
 
PPTX
VMworld 2015: Explaining Advanced Virtual Volumes Configurations
VMworld
 
PPTX
VMworld 2015: Virtual Volumes Technical Deep Dive
VMworld
 
VMworld 2016: vSphere 6.x Host Resource Deep Dive
VMworld
 
VMworld 2016: Troubleshooting 101 for Horizon
VMworld
 
VMworld 2016: Advanced Network Services with NSX
VMworld
 
VMworld 2016: How to Deploy VMware NSX with Cisco Infrastructure
VMworld
 
VMworld 2016: Enforcing a vSphere Cluster Design with PowerCLI Automation
VMworld
 
VMworld 2016: What's New with Horizon 7
VMworld
 
VMworld 2016: Virtual Volumes Technical Deep Dive
VMworld
 
VMworld 2016: Advances in Remote Display Protocol Technology with VMware Blas...
VMworld
 
VMworld 2016: The KISS of vRealize Operations!
VMworld
 
VMworld 2016: Getting Started with PowerShell and PowerCLI for Your VMware En...
VMworld
 
VMworld 2016: Ask the vCenter Server Exerts Panel
VMworld
 
VMworld 2016: Virtualize Active Directory, the Right Way!
VMworld
 
VMworld 2016: Migrating from a hardware based firewall to NSX to improve perf...
VMworld
 
VMworld 2015: Monitoring and Managing Applications with vRealize Operations 6...
VMworld
 
VMworld 2015: Advanced SQL Server on vSphere
VMworld
 
VMworld 2015: Virtualize Active Directory, the Right Way!
VMworld
 
VMworld 2015: Site Recovery Manager and Policy Based DR Deep Dive with Engine...
VMworld
 
VMworld 2015: Building a Business Case for Virtual SAN
VMworld
 
VMworld 2015: Explaining Advanced Virtual Volumes Configurations
VMworld
 
VMworld 2015: Virtual Volumes Technical Deep Dive
VMworld
 
Ad

Recently uploaded (20)

PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PPTX
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
PPTX
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PDF
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Agile Chennai 18-19 July 2025 | Workshop - Enhancing Agile Collaboration with...
AgileNetwork
 
Farrell_Programming Logic and Design slides_10e_ch02_PowerPoint.pptx
bashnahara11
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
RAT Builders - How to Catch Them All [DeepSec 2024]
malmoeb
 
The Future of Artificial Intelligence (AI)
Mukul
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
NewMind AI Weekly Chronicles – July’25, Week III
NewMind AI
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
Generative AI vs Predictive AI-The Ultimate Comparison Guide
Lily Clark
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 

VMworld 2013: vSphere UI Platform Best Practices: Putting the Web Client SDK Into Action

  • 1. vSphere UI Platform Best Practices: Putting the Web Client SDK Into Action Max Daneri, VMware Laurent Delamare, VMware Nimish Sheth, VMware TEX4845
  • 2. 2 Disclaimer  This presentation may contain product features that are currently under development.  This overview of new technology represents no commitment from VMware to deliver these features in any generally available product.  Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind.  Technical feasibility and market demand will affect final delivery.  Pricing and packaging for any new technologies or features discussed or presented have not been determined.
  • 3. 3 Agenda  Review of vSphere Web Client architecture and extensibility  Plugin development experience from the field  SDK 5.5 changes  Roadmap
  • 4. 4 vSphere Web Client (VWC) Architecture Overview VWC main characteristics for plugin developers  Open platform with a true web architecture  Extensibility at its core • UI extensibility • Data extensibility  Easy to build a unified user experience • Consistent look & feel • Data mash-ups  Rich SDK and developer tools
  • 5. 5 vSphere Web Client Architecture Overview 3-Tier Architecture App Server Solution 1Solution N Backend for Solution AvCenter Server vCenter Server 1 Web Client (Flex) Mid-tier app server (Java) Access to vCenter and other backend services App Server App Server
  • 6. 6 Leveraging the UI and Java Platforms vCenter 1.. N Back-end Server or Database VWC UI plugins 3rd party plugins • Plugin Architecture • MVC Framework • Data Access API Web Client App Server (stateless) 3rd party services • Data Manager • Session Manager • OSGI services Java remoting (BlazeDS) through secure AMF channel vSphere Web Service SDK Or any remote access to backend Direct access is possible but not as well integrated • Extension points • Java services proxy • Dependency injection VWC services VWC platform VMware components UI Platform Java Platform Partner solutions Back-ends
  • 7. 7 Data Extensibility & Client Commands VM UI Data Services VM Service myPlugin Adapter Host UI myPlugin UI VC Adapters Data Access Framework myPlugin Service vCenter 1.. N (inventory service) Back-end Server or Database Data Request Events Normalized queries Service calls VWC platform VMware components Partner solutions Dispatching Queries to back-ends Aggregated results Web Client App Server Java to back-ends Java Services Proxy No complex business logic in server plugins
  • 8. 8 Extensibility Framework Design Goals  Promote extensibility by design rather than implementation  Enable UI customization, consistency and easy navigation  Keep optimal footprint • Lazy loading of metadata, resources & code modules
  • 9. 9 Extensibility Framework Key Concepts  Extension Point • Declaration of an extensible feature  Extension • Implements an extension point  Plugin • Bundle of metadata, code and resources  Plugin package UI plugin bundle1 (.war) UI plugin bundle2 (.war) Java service bundle3 (.jar) Data adapter bundle4 (.jar) 3rd party library X (.jar) plugin-package manifest (.xml) my-packaged-solution (.zip)
  • 10. 10 Packaging & Deployment Example of a plugin-package manifest <pluginPackage id="com.vmware.samples.viewspropertiesui" version="1.0.0" name="Views Sample” vendor="VMware" > <dependencies> <pluginPackage id="com.vmware.vsphere.client" version="5.5.0" /> </dependencies> <bundlesOrder> <bundle id="com.vmware.wsvim25" /> <bundle id="com.google.gson" /> <bundle id="com.vmware.samples.custompropertyprovider" /> <bundle id="com.vmware.samples.custompropertyui" /> <bundle id="com.vmware.samples.viewspropertiesui" /> <bundle id="com.vmware.samples.wssdkprovider" /> <bundle id="com.vmware.samples.wssdkui" /> </bundlesOrder> </pluginPackage>
  • 11. 11 Packaging & Deployment How do you deliver your new plugin to users? 1. Create a plugin-package .zip 2. Provide a script to register the plugin as a vCenter extension, with a URL pointing to the plugin-package .zip location. 3. When a new user session starts, VWC finds your plugin and hot- deploys it to the app server if necessary. What about new versions?  Only the latest version of the plugin is deployed.  When a newer plugin version is registered the older one is un-deployed automatically.
  • 12. 12 Extension Templates  A collection of pre-defined extension points and extensions  Out-of-the-box templates • Instantiating an object workspace for new object types • Instantiating a summary view <!-- Chassis object view template instance. Defines the object workspace (right hand side) for the Chassis object. --> <templateInstance id="com.vmware.samples.chassis.viewTemplateInstance"> <templateId>vsphere.core.inventory.objectViewTemplate</templateId> <variable name="namespace" value="com.vmware.samples.chassis"/> <variable name="objectType" value="Chassis"/> </templateInstance>
  • 13. 13 Extension Templates – Custom object workspace
  • 14. 14 Extension Filtering  Allows filtering based on runtime conditions  3 filters • Object type • Typically used for actions • e.g. Show the extension only if the selected object is a VirtualMachine • Object properties • e.g. Show the extension only if the VM is FT enabled • Privileges • e.g. Show the extension only if the user has a specific privilege
  • 15. 15 Extension Filtering – Type Filter <extension id="vsphere.core.vm.faultToleranceTurnOnActionSet"> <extendedPoint>vise.actions.sets</extendedPoint> <object> … </object> <metadata> <objectType>VirtualMachine</objectType> </metadata> </extension> Example of an action appearing only for VirtualMachine objects:
  • 16. 16 Extension Filtering – Privilege Filter <extension id="vsphere.core.vm.ftView"> <extendedPoint>vsphere.core.vm.summarySectionViews</extendedPoint> <object> … </object> <metadata> <privilege>VirtualMachine.Interact.CreateSecondary</privilege> </metadata> </extension> Example of a portlet extension for users who have a specific privilege:
  • 17. 17 Extension Filtering – Object Property Filter <extension id="vsphere.core.vm.ftView"> <extendedPoint>vsphere.core.vm.summarySectionViews</extendedPoint> <object>…</object> <metadata> <privilege>VirtualMachine.Interact.CreateSecondary</privilege> <propertyConditions> <com.vmware.vsphere.client.filters.PropertyConditionsInfo> <conditions> <com.vmware.vsphere.client.filters.ComparisonInfo> <propertyName>runtime.faultToleranceState</propertyName> <comparisonOperator>EQUALS</comparisonOperator> <propertyValue>enabled</propertyValue> </com.vmware.vsphere.client.filters.ComparisonInfo> </conditions> <conjoiner>AND</conjoiner> </com.vmware.vsphere.client.filters.PropertyConditionsInfo> </propertyConditions> </metadata> </extension> Portlet extension restricted to VMs with a specific property enabled:
  • 18. 18 Agenda  Review of vSphere Web Client architecture and extensibility  Plugin development experience from the field  SDK 5.5 changes  Roadmap
  • 19. 19 Demo  A real life plugin, which displays special VM guestOS information which is not normally visible in the vSphere Client
  • 20. 20 My Challenges  vSphere Web Client extensions works in a different manner compared to .NET client  vSphere Web Service SDK is used in a different way • No need for WaitOptions, RetrieveServiceContent and login  (.NET lovers) .NET UI extensions are not possible, but a plugin can call an external .NET web service
  • 21. 21 What I Learned from My Mistake  Start simple – don’t try to start creating complex and fantastic code, start simple, your self-esteem will thank you  Don’t reinvent the wheel – everything needed to manage a vSphere infrastructure is here, no need to develop strange server component  Read the documentation – example codes are very important but sometime reading the doc is a must!
  • 22. 22 Agenda  Review of vSphere Web Client architecture and extensibility  Plugin development experience from the field  SDK 5.5 changes  Roadmap
  • 23. 23 Compatibility Story  Ground rules: • vSphere Web Client works with the previous vCenter release • Plugins are supported for at least one more VWC release Compatibility w/ vCenter 5.0 vCenter 5.1 vCenter 5.5 VWC 5.1 OK OK No VWC 5.5 No OK OK Compatibility w/ VWC 5.1 VWC 5.5 Plugin + SDK 5.1 OK OK Plugin + SDK 5.5 No (1) OK (1) Cannot use 5.5 features in a plugin targeting VWC 5.1, otherwise it is OK.
  • 24. 24 SDK 5.5 Changes  New features • Solution menus • A better way to build solution-specific menus • Action prioritization • 2 new extension points to order or promote actions • Finally possible to put a global action in the list toolbar • AdvancedMouseEvent • Listen to right-click events in your own widgets • DisposeManager improvements and new extension point • You can decide under which namespace your Flex objects will be GC’d • Dialogs and Wizards • Wizard data can be saved during the user session or across sessions • But support limited to 5.5 for now because of upcoming platform changes
  • 25. 25 SDK 5.5 Changes (cont’d)  Other important changes • Better samples • Virgo updated to 3.6 • Spring Framework libraries updated • Java version 1.7 (compile with target 1.6) • Flash Player version >= 11.5 • Web-ContextPath must use this format: vsphere-client/plugin-name • See [SDK]/docs/release-notes.html for all details  Your plugin package must now include a 5.5.0 dependency <pluginPackage id="com.acme.acme-plugin" version="1.0.0” name=”Acme solution” vendor=”ACME"> <dependencies> <pluginPackage id="com.vmware.vsphere.client" version="5.5.0" /> </dependencies> ...
  • 26. 26 Agenda  Review of vSphere Web Client architecture and extensibility  Plugin development experience from the field  SDK 5.5 changes  Roadmap
  • 27. 27 SDK Roadmap  We’re moving away from Flex as UI technology  Our future HTML 5 platform will preserve your investments  The Java tier doesn’t change  You will be able to take several paths during this transition • Keep using Flex UIs in the short term • Mix Flex UIs with HTML • Use only HTML/Javascript • Stick with C# client Script plugins
  • 28. 28 SDK Roadmap (cont’d)  Flex UI plugins • For the short term this is still the best way to integrate your UI with VWC • The entire vSphere UI suite is using this! • Will be supported by HTML 5 platform • Except deprecated APIs • Columns extensions and portlets have limitations  Use cases • Continuing existing investment • Starting a simple plugin • Building a UI plugin for vSphere 5.1 and 5.5  Tips • Reducing your UI code will make the transition easier • For complex UIs consider mixing some HTML views
  • 29. 29 SDK Roadmap (cont’d)  C# client script plugins • Can use HTML/Javascript • Limited integration with the Web Client • Fewer extension points, views displayed in separate tab Classis Solutions • Security warning because of HTTPS link to external server • Missing APIs (no callback into Flex) • No Java service layer • Will be supported in HTML 5 platform with some exceptions  Use case • Re-using or enhancing an existing script plugin • Writing a new plugin that must also work in the C# client  Tips • All new development should focus on true Web Client plugin, with a Java service layer, and a UI either in Flex or HTML
  • 30. 30 SDK Roadmap (cont’d)  New HTML/Javascript plugin support • Coming with the existing VWC 5.5 platform! • Full SDK support, all extensions are supported  • Easiest transition to future HTML 5 platform • Use the HTML widgets and Javascript libraries of your choice • Add or re-use Java services in the mid-tier • Possible to mix Flex and HTML  Beta-release coming soon
  • 31. 31 HTML Bridge Overview vCenter 1.. N Back-end Server or Database Web Client App Server • Data Manager secure AMF channel vSphere Web Service SDK UI Flex Platform Java Platform PartnersBack-ends VWC platform VMware Any remote access API Html views invoked by bridge. Javascript callbacks available for some Flex APIs REST apis to get/post data with java controllers Integration at the data level is independent of the UI rendering technology VWC UI plugins 3rd party Flex plugins HTML plugins HTML Bridge• Data Access API • Extension points VWC adapters 3rd party controllers 3rd party data adapters 3rd party services Controllers get data through Data Manager, or call services to access back-end Solution can mix Flex & Html HTTPS Ajax
  • 33. 33 • TAP Access membership includes: New TAP Access NFR Bundle • Access to NDA Roadmap sessions at VMworld, PEX and Onsite/Online • VMware Solution Exchange (VSX) and Partner Locator listings • VMware Ready logo (ISVs) • Partner University and other resources in Partner Central • TAP Elite includes all of the above plus: • 5X the number of licenses in the NFR Bundle • Unlimited product technical support • 5 instances of SDK Support • Services Software Solutions Bundle • Annual Fees • TAP Access - $750 • TAP Elite - $7,500 • Send email to [email protected] TAP Membership Renewal – Great Benefits
  • 34. 34  TAP • TAP support: 1-866-524-4966 • Email: [email protected] • Partner Central: http://www.vmware.com/partners/partners.html  TAP Team • Kristen Edwards – Sr. Alliance Program Manager • Sheela Toor – Marketing Communication Manager • Michael Thompson – Alliance Web Application Manager • Audra Bowcutt – • Ted Dunn – • Dalene Bishop – Partner Enablement Manager, TAP TAP Resources  VMware Solution Exchange • Marketplace support – [email protected] • Partner Marketplace @ VMware booth pod TAP1
  • 37. vSphere UI Platform Best Practices: Putting the Web Client SDK Into Action Max Daneri, VMware Laurent Delamare, VMware Nimish Sheth, VMware TEX4845