{"id":2876,"date":"2011-06-24T14:56:27","date_gmt":"2011-06-24T12:56:27","guid":{"rendered":"https:\/\/ingmarverheij.com\/?p=2876"},"modified":"2011-06-24T16:07:53","modified_gmt":"2011-06-24T14:07:53","slug":"the-impact-of-silverlight-on-a-virtual-desktop","status":"publish","type":"post","link":"https:\/\/ingmarverheij.com\/en\/the-impact-of-silverlight-on-a-virtual-desktop\/","title":{"rendered":"The impact of Silverlight on a virtual desktop"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Silverlight Logo\" border=\"0\" alt=\"Silverlight Logo\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-Logo.png\" width=\"71\" height=\"79\" \/><\/p>\n<p>A customer has a (virtualized) Citrix XenApp farm scaled for 1500 concurrent users. The environment is based on Windows Server 2003 Standard with Citrix XenApp 5 (migration to XenApp 6.x is scheduled).<\/p>\n<p>A business critital web-application is re-developped and requires Microsoft Silverlight. Before implementing Silverlight the impact should be determined. A big concern is a decrease in the capacity of the farm, number of concurrent users the farm can handle.<\/p>\n<p>To determine the impact of Silverlight I\u2019ve done some tests, including a LoadTest. <\/p>\n<p><!--more--><\/p>\n<h4>Versions used<\/h4>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-plugin-deployment1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Silverlight plugin deployment\" border=\"0\" alt=\"Silverlight plugin deployment\" align=\"right\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-plugin-deployment_thumb.png\" width=\"79\" height=\"88\" \/><\/a>Silverlight 4 is currently the most widespread version (73,07%, <a href=\"https:\/\/www.riastats.com\/#\" target=\"_blank\">source<\/a>) and most recent version of Silverlight. So the version installed on the test environment is <a href=\"https:\/\/www.silverlight.net\/\" target=\"_blank\">Silverlight<\/a> 4.<\/p>\n<p>The customer uses Internet Explorer 8 as there main browser, this won\u2019t be changed for the test.<\/p>\n<h4>&#160;<\/h4>\n<h4>Quick memory test<\/h4>\n<p>A <strong>quick<\/strong> test to determine the memory impact of <strong>Silverlight<\/strong> is just by simply looking at the memory consumed, which is visible in the <strong>task manager<\/strong>.<\/p>\n<p>The base <strong>OS<\/strong> uses around 593MB (around 0,5GB). When <strong>Internet Explorer 8<\/strong> is opened with an empy page (about : blank) the consumed memory increases to 646MB. So Internet Explorer 8 uses roughly <strong>53MB<\/strong>. Next a common used news site is opened (<a href=\"https:\/\/www.nu.nl\">https:\/\/www.nu.nl<\/a>) which has some flash ads on it, the memory consumption increases to 672MB, so this site uses around <strong>26MB<\/strong>. The same test is repeated (IE is closed and reopened with an empty page) with a Silverlight site the aggregates news pages (<a href=\"https:\/\/www.nuni.nl\/\">https:\/\/www.nuni.nl\/<\/a>), the memory consumption is now 734MB (!). The Silverlight site uses <strong>88MB<\/strong>.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/OS-Footprint.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"OS Footprint\" border=\"0\" alt=\"OS Footprint\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/OS-Footprint_thumb.png\" width=\"139\" height=\"90\" \/><\/a><\/p>\n<h4><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-Empty1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"IE8 Empty\" border=\"0\" alt=\"IE8 Empty\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-Empty_thumb.png\" width=\"139\" height=\"90\" \/><\/a><\/h4>\n<h4><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-Nu.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"IE8 Nu\" border=\"0\" alt=\"IE8 Nu\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-Nu_thumb.png\" width=\"139\" height=\"90\" \/><\/a><\/h4>\n<h4><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-NuNi.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"IE8 NuNi\" border=\"0\" alt=\"IE8 NuNi\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/IE8-NuNi_thumb.png\" width=\"139\" height=\"90\" \/><\/a><\/h4>\n<h4>&#160;<\/h4>\n<h4>&#160;<\/h4>\n<h4>&#160;<\/h4>\n<h4>&#160;<\/h4>\n<h4>Impact on capacity<\/h4>\n<p>First of all I need to determine the baseline of the current situation. How many users can one physical server handle? Since this is a virtualized environment I\u2019m testing four virtual Citrix XenApp servers, all on the same physical server. The maximum concurrent users is determined with a <strong>stresstest<\/strong>. The theoretical maximum of users (the point where errors occur) is used instead of the practical maximum (where response times are acceptable).<\/p>\n<p>The stresstest adds users at a fairly quick <strong>pase<\/strong>, four sessions each 15 seconds, and goes on until 125 users are on the server. Since this is above the <strong>nominal<\/strong> load (roughly 100 is expected) sessions will fail and new sessions will arive, and fail, etc. This has an <strong>impact<\/strong> on the load and is therefor only used as a <strong>guideline<\/strong>.<\/p>\n<p>The <strong>user actions<\/strong> that are <strong>simulated<\/strong> is based on an <strong>agreed<\/strong> (with the customer) scenario. It roughly contains the following applications : Adobe Reader, Microsoft Excel, Windows Explorer, Internet Explorer, Microsoft Outlook, Microsoft PowerPoint and Microsoft Word.<\/p>\n<p>Both Internet Explorer and Microsoft Outlook remain opened, other applications are closed after use. This creates a \u2018<strong>base<\/strong> load\u2019 for each user. After each iteration the session <strong>sleeps<\/strong> (idle) for a set time.<\/p>\n<p>In the user action scenario Internet Explorer is used. The webpage used is the corporate intranet webpage which is <strong>HTML<\/strong> only, which is perfect to create a <strong>baseline<\/strong>. In the second test the Intranet webpage is replaced with a Silverlight webpage (<a href=\"https:\/\/www.nuni.nl\">https:\/\/www.nuni.nl<\/a>). The Silverlight webpage used is a site that aggregates news from multiple sites.<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Users-Stresstest-without-Silverlight.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Stresstest without Silverlight\" border=\"0\" alt=\"Stresstest without Silverlight\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Users-Stresstest-without-Silverlight_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Users-Stresstest-with-Silverlight.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Stresstest with Silverlight\" border=\"0\" alt=\"Stresstest with Silverlight\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Users-Stresstest-with-Silverlight_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>Based on the stresstest we can conclude that the <strong>maximum<\/strong> number of (theoretical) concurrent users is dropped from <strong>100<\/strong> to <strong>50<\/strong>. Wow!<\/p>\n<p><em>Note : This is a quick stresstest used as a guideline. Not all HTML only webpages will be replaced with Silverlight (more on that later)<\/em><\/p>\n<p><em><\/em><\/p>\n<h4>Increase in footprint<\/h4>\n<p>Now I\u2019ve established the theoretical maximum number of users I can use that number as the <strong>nominal<\/strong> load. I will use the nominal load of <strong>50<\/strong> users for a LoadTest which will show the impact of Silverlight in the performance <strong>footprint<\/strong>.<\/p>\n<p>The same tests are <strong>repeated<\/strong> only a slower pase is used, two sessions each 30 seconds. A total of 50 sessions is added, the <strong>nominal<\/strong> load. After the 50 sessions are active the scripts <strong>iterate<\/strong> infinite. The performance <strong>footprint<\/strong> is measured after all users are active (roughly at 16 minutes). I\u2019ve let the script run for another <strong>10<\/strong> minutes and looked at the performance metrics of both tests.<\/p>\n<p>Since there are four logical servers (virtual) on one physical server, each server gets 12 or 13 sessions<\/p>\n<p>The impact is mainly on <strong>memory<\/strong> consumption and <strong>processor<\/strong> activity, disk and network activity is not noticable. This (of course) depends on the webpage used, a Silverlight page can easily generate more network traffice.<\/p>\n<h5>&#160;<\/h5>\n<h5>Memory<\/h5>\n<p>The <strong>base<\/strong> memory used by the OS is around <strong>0,6GB<\/strong>. The baseline (HTML only intranet) with 50 sessions result in <strong>2GB<\/strong> committed memory, an additional <strong>1,4GB<\/strong>. So each <strong>session <\/strong>uses <strong>112MB<\/strong>. When the HTML only intranet page is replaced with the Silverlight page (<a href=\"https:\/\/www.nu.ni.nl\/\">https:\/\/www.nu.ni.nl\/<\/a>) the committed memory increases to <strong>3GB<\/strong>, an additional <strong>2,4GB<\/strong>. This means that each session now uses <strong>192MB<\/strong>, an <strong>increase<\/strong> of <strong>80MB.<\/strong><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-without-Silverlight-Memory.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"LoadTest without Silverlight (Memory)\" border=\"0\" alt=\"LoadTest without Silverlight (Memory)\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-without-Silverlight-Memory_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/p>\n<h5><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-with-Silverlight-Memory1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"LoadTest with Silverlight (Memory)\" border=\"0\" alt=\"LoadTest with Silverlight (Memory)\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-with-Silverlight-Memory_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/h5>\n<h5>&#160;<\/h5>\n<h5>&#160;<\/h5>\n<h5>&#160;<\/h5>\n<h5>&#160;<\/h5>\n<h5>&#160;<\/h5>\n<h5>&#160;<\/h5>\n<h5>Processor<\/h5>\n<p>The operating system, when <strong>idle<\/strong>, has nearly no <strong>activity<\/strong>. So the processor base usage is around <strong>2%<\/strong>. The baseline with 50 users results in an average usage of <strong>40%<\/strong> but varies from 20 to 60%, roughly 3% per session. When the HTML only intranet page is replaced for the Silverlight page the CPU <strong>usage<\/strong> increases to an average of <strong>60%<\/strong> and varies between 40 and 80%, an average of around 4,6% per session..<\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-without-Silverlight-Processor.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"LoadTest without Silverlight (Processor)\" border=\"0\" alt=\"LoadTest without Silverlight (Processor)\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-without-Silverlight-Processor_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-with-Silverlight-Processor.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"LoadTest with Silverlight (Processor)\" border=\"0\" alt=\"LoadTest with Silverlight (Processor)\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/LoadTest-with-Silverlight-Processor_thumb.png\" width=\"279\" height=\"114\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<h5>Summary<\/h5>\n<p>So the <strong>increase<\/strong> per session for memory (from 112MB to 192MB) is <strong>+71%<\/strong> and the increase for processor (from 3% to 4,6%) is <strong>+53%<\/strong>. Of course these numbers are <strong>indicative<\/strong>, not all websites are equal and the same goes for the environment used.<\/p>\n<p>IF (that\u2019s a captital if) all HTML only websites are replaced with Silverlight, and webpage are used as frequent as in the scenario, the increase in footprint results in a decrease in the total theoretical capacity of 50% (from 100CCU to 50CCU).<\/p>\n<p>Both the StressTest and the LoadTest are executed using the <a href=\"https:\/\/www.denamik.com\/\" target=\"_blank\">DeNamiK LoadGen<\/a>.<\/p>\n<p>&#160;<\/p>\n<h4>User experience<\/h4>\n<p>The <strong>experience<\/strong> of users is very <strong>important<\/strong> on a virtual desktop environment since a <strong>remoting protocol<\/strong> is used to transfer the content of the screen. The remoting protocol used in <strong>ICA<\/strong> since this is a Citrix XenApp 5 environment. There is currently no optimization for Silverlight in Citrix ICA (unlike Adobe Flash). <\/p>\n<p><em>Note: Citrix is currently redesigning multimedia redirection and server side rendering in HDX, Silverlight will be subject of optimization.<\/em><\/p>\n<p>Measuring the user experience is <strong>difficult<\/strong> since there are so many factors to consider. Altough I do have a good method to get a good <strong>indication<\/strong>, there is no budget (and therefore time) to set this up.<\/p>\n<p>A more <strong>pragmatic<\/strong> approach was needed so I checked the experience <strong>myself<\/strong> in a test session. Because the farm is configured with the \u2018discard queued image that is replaced by another image\u2019 option, images that are refreshed before they are displayed are <strong>discarded<\/strong>. This results in a choppy display with animations or movies but also in a very <strong>responsive<\/strong> session. <\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Farm-settings1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top: 0px; border-right: 0px; padding-top: 0px\" title=\"Farm settings\" border=\"0\" alt=\"Farm settings\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Farm-settings_thumb.png\" width=\"149\" height=\"116\" \/><\/a><\/p>\n<p>So the user experience (based on responsiveness) is <strong>good<\/strong> with Silverlight (or Adobe Flash or \u2026) altough this depends on the configuration and requirements. When the <strong>quality<\/strong> of <strong>animations<\/strong> or <strong>videos<\/strong> are important this is <strong>hard<\/strong> to achieve with the current <strong>technologies<\/strong>.<\/p>\n<p>&#160;<\/p>\n<h4>Silverlight usage \/ adoption<\/h4>\n<p>To put this research in <strong>perspective<\/strong> I need to determine <strong>how<\/strong> likely it is that a Silverlight webpage is <strong>used<\/strong> instead of a HTML only webpage. <\/p>\n<p>I\u2019ve used the \u2018<a href=\"https:\/\/trends.builtwith.com\/\" target=\"_blank\">BuiltWith Technology Usage Statistics<\/a>\u2019 website to determine how many Silverlight webpages are used.<em> \u201cBuiltWith Trends provides weekly updated free information about the most popular technology used on the web across all areas of web technology including but not limited to analytics, advertising, frameworks, ecommerce and website widgets\u201d<\/em><\/p>\n<p>The <strong>usage<\/strong> of Silverlight is not <strong>broad<\/strong> to say the least. Only <strong>0,2%<\/strong> of the top million sites are using Silverlight, an increase of 0,05% since last year. From the top 10,000 sites only <strong>0,06%<\/strong> use Silverlight which is a decrease of 0,04% since last year. <\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-Usage-Statistics-Chart.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Silverlight Usage Statistics - Chart\" border=\"0\" alt=\"Silverlight Usage Statistics - Chart\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-Usage-Statistics-Chart_thumb.png\" width=\"270\" height=\"193\" \/><\/a><\/p>\n<p><a href=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-Usage-Statistics-Text.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; margin: 0px 5px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"Silverlight Usage Statistics - Text\" border=\"0\" alt=\"Silverlight Usage Statistics - Text\" align=\"left\" src=\"https:\/\/ingmarverheij.com\/wp-content\/uploads\/2011\/06\/Silverlight-Usage-Statistics-Text_thumb.png\" width=\"270\" height=\"177\" \/><\/a><\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>So the <strong>chance<\/strong> that a user will be using Silverlight, other than the business critical application, is pretty <strong>small<\/strong>. <\/p>\n<p>&#160;<\/p>\n<h4>Conclusion<\/h4>\n<h4><\/h4>\n<p>The impact of Silverlight on a virtual desktop can be high compare to a HTML only webpage. When the quality of animations or videos is important it might be difficult to configure. But it is unlikely that Silverlight webpage are used since only 0,2% of the top million websites are using Silverlight.<\/p>\n<p>In fact, even Microsoft is replacing Silveright with other techniques. <a href=\"https:\/\/techcrunch.com\/2011\/06\/20\/skydrive-silverlight-html5\/\" target=\"_blank\">Windows SkyDrive recently replaced Silverlight with HTML5<\/a> to reach a broader audience (like mobile platofrms).<\/p>\n<p>&#160;<\/p>\n<p>&#160;<\/p>\n<p>Ingmar Verheij<\/p>","protected":false},"excerpt":{"rendered":"<p>A customer has a (virtualized) Citrix XenApp farm scaled for 1500 concurrent users. The environment is based on Windows Server 2003 Standard with Citrix XenApp 5 (migration to XenApp 6.x is scheduled). A business critital web-application is re-developped and requires Microsoft Silverlight. Before implementing Silverlight the impact should be determined. A big concern is a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[300,302,305],"tags":[346,347,41],"class_list":["post-2876","post","type-post","status-publish","format-standard","hentry","category-desktop-virtualization","category-performance-testing","category-xenapp-presentation-server","tag-silverlight","tag-virtual-desktop","tag-xenapp"],"_links":{"self":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/2876","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/comments?post=2876"}],"version-history":[{"count":6,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/2876\/revisions"}],"predecessor-version":[{"id":2890,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/posts\/2876\/revisions\/2890"}],"wp:attachment":[{"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/media?parent=2876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/categories?post=2876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ingmarverheij.com\/en\/wp-json\/wp\/v2\/tags?post=2876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}