The Zen of Hosting: Part 8 - Microsoft Dynamics GP and Terminal Services

For this instalment, the product I am going to cover is Microsoft Dynamics GP, which is very interesting compared to MS CRM (part 6) and MOSS (part 7)—in that it is not web-based and thus presents a completely new challenge when exposing it in a web-based hosting environment.

For those who don’t know the architecture, it is a Windows Forms application (not sure if it’s .NET or WinAPI, but the GUI is a thin veil over a monster SQL database with so many tables and stored procedures, it’s scary). The normal way is that the user gets this client installed, and the client directly connects to the SQL server. So if you are thinking of hosting and end up having to allow direct connections over the web to SQL, think again—the security risk of this makes it a huge no.

After spending some time investigating other people offering hosted GP, the solution everyone else seems to provide is: give you a server and let you remote in via Citrix. As this is a Microsoft end-to-end solution, Citrix is not an option, but Microsoft does have Terminal Services (TS), which can compete—and in Windows Server 2008, it competes better than before. TS has always been about connecting to a full session, which is nice, but we don’t want nice—we want amazing.

So, with Windows Server 2008, TS includes a feature called Remote Applications. Remote Apps lets an admin publish an application to a user, so it runs from:

It looks just like it’s running on the user’s machine, but in the background, it spawns a normal TS session on the server, starts the application, and pushes only the UI of the application to the user. It’s great—the user thinks it’s on their machine—and it’s super fast (thanks to the server’s power), and it’s not fighting for resources on the client machine.

As this is the first version of this, there are still some rough edges that need addressing. Firstly, the application still runs on the server, so if you go File → Open, you browse the server’s file system. (I know TS can share drives from client to host, but they look like other drives—not the normal C, D, etc. users expect.) What should happen is that the admin should be able to disable the server’s drives from being exposed, so only the client’s drives are shown. The same should apply to printers.

One advantage for GP is that working with the file system isn’t a big requirement, but printing is, and that’s less of a pain. The next area is security—it’s still launching a TS session, which means if you want to allow a user to run a remote application, they end up needing login rights. (I understand the technical requirements around this, but there should be a way to separate people who will log in via TS to the machine and those who just need Remote Apps on the terminal service level.)

Despite these challenges, Microsoft Dynamics GP looked like it was going to be difficult to deploy—but in the end, it was very easy.