Azure RemoteApp – Bring Java application to RemoteApp
Can we run a Java application with RemoteApp? The most interesting question for this week, I spent almost whole day to find the correct answer. I tried to check the Microsoft’s requirement and found the following statement.
RemoteApp supports streaming 32-bit or 64-bit Windows-based applications from a Windows Server 2012 R2 installation. Most existing 32-bit or 64-bit Windows-based applications run “as is” in RemoteApp (Remote Desktop Services or formerly known as Terminal Services) environment.
What’s Windows-based applications? Windows-based applications refer to applications which were implemented with Microsoft’s technologies (such as .NET Framework, SQL Server) or can be any applications which can run well on Windows environment (Java application is one example)? I found the following definition after half of hour to work with Google (but it’s not a popular term).
Displaying applications in resizable windows on screen. Same as “graphics based” and “GUI based.”Graphical user interfaces (GUIs) on desktop and laptop computers are all Windows-based.
I stopped and closed all searched tabs and start to build my PoC to find the practical answer instead of using reference from someone else. And for now my answer is PARTIALLY YES. Why I say PARTIALLY because my PoC cannot cover all the cases and my scenario is not quite complicated.
In my PoC I selected JMeter (http://jmeter.apache.org/) which is a Java application and also include some *.bat files (help to validate environment configuration and application’s dependencies).
I summarize below the major steps to build my PoC. I hope it can bring to you some interesting thing.
So let’s start with creating new template for RemoteApp service. Basically, you can build the template in local machine or using Azure Virtual Machine like me. Microsoft provides the robust gallery which help us to quickly set up your working environment. In this case I created my VM with Windows Server Remote Desktop Session Host image.
If you are not familiar with VM, please refer to Azure VM – Minutes to setups Windows 10.
In next step, I need to install Java, JMeter and of course, I perform my testing to make sure the application run properly.
Included in Microsoft template, they provided us the PowerShell script which help to validate all the pre-requisites for Azure RemoteApp. You can find and run it easily by double-clicking ValidateRemoteAppImage icon on the desktop. Ensure that all errors reported by the script are fixed before proceeding to the next step.
Next important step is performing SysPrep and Capture the image. For detail refer to Azure VM – How to create your own virtual machine image?
Navigate to RemoteApp then Template Images and start to import the new template.
Select Import an Image from your Virtual Machines library option.
In the next page, select your custom image from the drop down and confirm that you have followed the steps listed below to create your image.
In the next page, provide a name and location for the new RemoteApp template image.
You need to wait for a while to get the new template available then can create new RemoteApp collection based on your custom template.
Start to publish JMeter application using Path and my runnable package was located in C:\Program Files\apache-jmeter-2.13\bin\jmeter.bat.
WOW, you finish provisioning and configuring new RemoteApp collection, now let try to access and review the remotable JMeter version.
You can save your files in RemoteApp storage and come back later to resume your work, that’s fantastic.