Category Archives: XenApp

Debugging XAMA SDK Applications

When a developer first experiments with mobile phones and tablets, one of the first questions is how it can be debugged.  With PCs it is fairly easy to start a debugger for a program since the environment is well established and there is plenty of screen space.  With a phone, the space is very limited.  On top of this, there is very limited input control.  Using touch is very effective for mobile devices but not always that effective for debugging the applications than run on these devices.  There has to be some kind of outside control to make this more effective.

There are some general strategies:

  1. Using tracing to log files
  2. Using tracing to remote consoles
  3. Interactive Debugging inside session
  4. Interactive Debugging in another session

Continue reading

Citrix XenApp Mobile Application SDK Version 1 Available

The first version of the Citrix XenApp 6.5 Mobile Application (XAMA) SDK has been published on the Citrix web site as of December 17, 2011.  In order to use the SDK, the XenApp server must have the Citrix XenApp 6.5 Mobility Pack (XAMP) installed first.  The team has worked for around a year bringing this together.  The overall goal is to make it easy for enterprise Windows developers write software that works well on mobile devices (phones and tablets).

Continue reading

Session Recovery Idea 422

Here’s another idea ahead of its time. This one also came from iForum 2003, but from a different customer.
At the time it seemed like a largely unsolvable problem with MetaFrame. This has since changed with the advancement of virtualization and the implementation of XenDesktop.

Here’s the text:

A customer was asking for the ability to recover sessions during iForum in Sydney.
Essentially there are looking for “rock solid” application connections.
Given the nature of networks, this seams like a pretty big request.
I think this request belies a bigger request for being able to have sessions that are fault-tolerant.

The faults could happen at many different places:
Network (down)
Hardware (faults)
Software (exceptions)

Based on the potential for error, it is fairly easy to see that it would be impossible to guarantee 100% up-time.
However, we could greatly improve what we do today.

1. Change ACR to be at a transport layer level so that the user does not experience the session going away until the transport layer has died after a given retry duration and count. It is very important for the user to think it is still running even when it is in the process of reconnecting. This is definitely an image issue.

[ This did change not long after. Connections look alive even if the connection has errors.]

2. Use a RAID-like strategy for running applications. Have multiple sessions controlled by the same user input. I know this would be more difficult than it sounds but it would allow for instantly switching from a bad session to a good session in potentially a fraction of a second.

[Interesting but impractical. Divergent states would not be prevented.]

3. Potentially use record/playback to recreate session states. This does not seem as promising since states can change (files for example) and playing back the stream would not get you to where you want to be.

[This also sounds good but wouldn't work]

4. When you have multiple sessions running to support fault tolerance, have them talk to each other (master slave relationship) so that the sessions will always be in sync even if one goes down.

[Better, but certainly would not work universally]

5. Run the different copies of the same sessions on different machines in case the hardware fails.

[Hints of virtualization but not quite]

Another concept that come out of this is the idea of “Always on” applications.

This just means that for a given user, a certain application is always guaranteed to be running. This would be great for re-connect times and also would give the image of permanence to the user. For example, I would love to have a copy of Outlook “Always On” so that I could quickly check my email without having to fully start a new session. I know this can be done with disconnect times and other tricks but it would be a big coup to be able to say that a server will always be on with your app waiting and running.

[This would be an easy win if Citrix ever decided to push this angle. The technology for this is already there but it would require essentially getting rid of timeouts and making re-connections super smooth]

Back to 2008…

Session recovery is another one of those requirements that has been around for most of Citrix’s history. It is only recently with virtualization that it is possible to move VMs from one host to another. This concept overlaps well with how XenDesktop is built. Companies such as Marathon have focused on making Citrix fault tolerant.

However, the dream of moving around an individual session on XenApp seems almost impossible.

There was a brief glimmer of hope with the announcement of Luflogix from Brian Madden, but alas it was only an April Fools joke.

Given the age of the requirement and also the potential applications, there is a renewed possibility this could be addressed using modern technology.

The first step is to realize that there is a real need. The second step would be to setup a research project within Citrix Advanced Products. As a result, hopefully customers will finally get the ability to guarantee session permanence regardless of failures or location.

Once you get a session that can live forever, the next logical step is to find a way to move it to anywhere else in a self contained aspect. As usual, this kind of thinking is a bit ahead of the curve.

ClearType and Terminal Services

Did you know that typeface with Terminal Services is usually downgraded from the usual local experience?  Microsoft has the ClearType technology which normally improves the look of text by rounding the edges with different colors giving the characters more rounded effect.

Computer displays in which the positions of individual pixels are permanently fixed by the design of the hardware—such as most modern flat-panel displays—can show strong aliasing artifacts, which manifest as jagged, saw-tooth edges (sometimes referred to as “jaggies”) when displaying small, high-contrast graphic elements such as text. ClearType uses anti-aliasing at the subpixel level to greatly reduce visible artifacts on such displays when text is rendered, making the text appear “smoother” and less jagged.

The technology has been around for a number of years but only recently has become mainstream with Microsoft products having it automatically turned on.

ClearType, a trademark of Microsoft, was first announced at the November 1998 COMDEX exhibition. The technology was first introduced in software in January 2000[1] as an always-on feature of Microsoft Reader, which was released to the public in August 2000. ClearType was later introduced as an operating system feature in Windows XP, where it was kept turned off by default. In Windows Vista, ClearType is turned on by default. In Microsoft Office 2007 and Internet Explorer 7, ClearType turned on by default, even if it is not enabled throughout the operating system. ClearType is also an integrated component of the Windows Presentation Foundation text rendering engine.

It is always good to check Wikipedia first.   The catch here is that Terminal Services has typically turned ClearType off.  At least this was true for Windows Server 2003.

Citrix has announced this in a support article about ClearType.

Symptoms

Microsoft ClearType works correctly inside an ICA session with Citrix Presentation Server running on Windows 2000 Server, but it does not work with Presentation Server version 4.5 running on Windows Server 2003.

Background

With Windows 2000 Server, Microsoft introduced ClearType, a font display technology that improves font display resolution.

In Windows Server 2003, Microsoft have released an update that now enables ClearType support for Terminal Services making it available for Remote Desktop users.

For further information please see Article 946633 The “Font smoothing” feature has no effect in Windows Server 2003 terminal sessions

Status

Citrix is currently working on an update to Presentation Server version 4.5 for Windows Server 2003 to utilize this new Microsoft Update for Terminal Services to provide ICA users with ClearType support.

Please note that Microsoft has only recently allowed this to work on Windows Server 2003.  The hotfix announcement is from March 6, 2008.

Internally ClearType has been discussed several times as part of the XenDesktop and XenApp projects.  XenDesktop received a benefit when ClearType just worked due to it not being Terminal Services based.  XenApp needed the hotfix.  There is one step left and that is to enable ClearType on XenApp for 4.5 and 5.0.  Internal reports suggest that it does not suffer from the change for performance.

Internet Explorer 7 and Microsoft Office 2007 both expect ClearType and apparently Outlook looks pretty bad without it.  At this point it really does not make sense to keep it off if there is no penalty for doing so.

Overall this is a very simple way to make things look the same between local and remote.

Mark’s Message from Summit 2008

During Summit 2008, a video was released from Mark Templeton. The video is fairly brief and summarizes the current visions of Citrix. At this time, the concept of XenApp was first introduced. The video seems to be missing the typical high energy presence of Mark so I suspect it was taken after a very long day.  You can just click the picture to see the video.

markt.jpg

Introducing XenApp

Citrix has officially announced the name change for what was called “Citrix Presentation Server”. The original NDA announcement came during Citrix Summit and it was quickly written about on the web. I’ve been avoiding the topic like the plague since I knew no good would come from talking about it early. Finally, I can relax and write about it.

The industry has already reacted to this name change and the overall consensus is good. There have been a few comments that it is a good idea to have a similar naming scheme for the different products. Another common comment is that Citrix needs to get value for this brand based on the acquisition price.

Either way, there doesn’t seem to be much resistance to the idea of changing the name.

Let’s briefly summarize the names that Citrix has had for its main product:

  • 1990 Multiuser
  • 1992 A+ Remote
  • 1993 WinView
  • 1995 WinFrame
  • 1998 MetaFrame
  • 2001 MetaFrame XP
  • 2004 Presentation Server
  • 2008 XenApp

I’m not completely sure about the date of the Presentation Server introduction. It could be plus or minus a year. As you can see from this, the pace of name changes has actually slowed down over the years. We are changing names about every four years or so based on this past history. Perhaps it will happen next in 2012.

This really is the realm of marketing and it is clear that any engineer isn’t going to have a viable opinion as to what the name should be or how long the current name should last. Changing the name is the easiest way to bring a fresh angle into a product line that we founded in 1995. Certainly there have been many additions and improvements but the basic idea of how things work is largely the same.

A prediction I would make is that the worlds of XenApp and XenDesktop are going to collide. This will especially be true if XenDesktop is allowed to mature and achieve seamless applications. This could be a good thing. At some future point the two worlds are likely to merge and be able to fit either environment.

The Xen prefix doesn’t mean that XenDesktop only does Xen. A great deal of work has been done to make sure it works with another vendor as well as working on real machines. This includes individual machines as well as blades. I’ve mentioned this before. The confusion customers have is the cost of using Xen in the name.

Like any name change, it usually takes time for me to grow into it. In this case I would predict that it will not take long to get used to. We seem to have Xen on the mind lately. After awhile it really doesn’t matter what the name is because it is only a name. The products have their own personality and the name is just a tag when you talk about it. Initial acceptance is probably the most important thing.

Personally I remember thinking that “Presentation Server” was a bit stuffy when the name was last changed. That wore off pretty fast. It was okay once everyone started calling it CPS.

Welcome to the brave new world of XenApp!