Category Archives: Citrix Ideas

Blocks Versus Files

This topic presents an interesting problem.  A disk is made up of sectors which are arranged as clusters by the file system.  Both NTFS and FAT use a cluster model to clump together sectors into bigger chunks.  The cluster model has been around since the original DOS and still runs strong today.  The boot sector of the volume contains how many sectors of a certain size belong to one cluster.  On my Vista system the clusters are 4K (8 sectors of 512 bytes each).  This can vary for USB Flash Drives and smaller hard drives.  My flash drive reports a cluster size of 32K (64 sectors/cluster).  All of this is fine but then the question becomes why should I care?

The answer becomes more relevant when virtualization comes into the picture.  For a VM, the disk is virtual and is actually a file within another file system (most of the time).  Microsoft and Citrix use the VHD format for the VM files.  The VHD specification is public knowledge since Microsoft has documented as of a couple of years ago.  Given that there is a VHD file, everything needed by the operating system is there.  However, it becomes very difficult to manage this information from the outside.  Yes, there are ways to mount VHD drives within a native operating system, but this process is not necessarily easy to automate.  Well, at least not for everyone.

Then a new factor enters the equation.  Since the outside tools cannot see inside the VHD to understand what Windows is actually using, it becomes very difficult to do any kind of analysis or consolidation.  Microsoft does have a solution for compressing a VHD with Virtual PC 2007.  Unfortunately, there are many steps and it involves executing code both inside and outside the VM.  Wouldn’t it be nice if this could be managed completely from the outside?  Wouldn’t it be nice if every cluster (block) was paired with a file?

This sounds difficult and overall the problem is very tough.  The benefits however would be huge.  Basically any file operation performed on the inside could potentially be performed on the outside.  This would include things like defragmentation and shrinking the VHD to get rid of the blank chunks.  It could also include peering into the VHD to see what is there and even the hope of doing updates.

Other possible ventures would include merging virtual disks and even creating virtual disks out of multiple virtual disks.  It is possible to focus on the files instead of the blocks, it would much more possible to have base and delta disks which would both be allowed to change but yet form a cohesive volume to the user.  It is good to dream.

The sources of information look promising.  Microsoft has published APIs related to defragmenting disks which can locate a file on disk.  The API also allow for cluster relocation.  Beyond this, there are projects for Linux to understand NTFS.  Those teams have done much to discover the structure of NTFS and have included this knowledge in their programs and their documentation.  With these kind of guidelines, with patience, NTFS starts to open up and new things become possible.

There is a bit of vagueness about going on here.  It is still too early to talk about in detail.  However, it does seem that specific tasks are within reach which did not look so possible before.  Combining the knowledge of VHD with NTFS to form new tools looks incredibly attractive.

ICA Stream – Citrix Product Idea 187

“ICA Stream” is the oldest idea I have in the product ideas database. It was submitted March 23, 2002. The basic premise was being able to record and playback ICA sessions. This idea later became a part of Project Iris and eventually became a product called “SmartAuditor”. This first submitted idea was a trial balloon to see how well the product ideas database worked.

It took a number of years for the project to finish due to some gaps in development. Initially the company was not overly excited about the project but over time it must have realized that it had value in the market. From a compliance point of view, it makes perfect sense even though I never intended it to go that far. Some people might think that this kind of capture could be seen as being a bit like “Big Brother”. Like any other technology, how it is used is based on where it gives the most value. In this case it is largely used by financial institutions to guarantee integrity. In theory, the more people involved, the less likely something will go wrong or someone will try to commit a crime.

Anyways, here is the original related text:

I have had some ideas about ICA Stream for some time and I’m glad that I am finally writing them down. Basically the idea is to take advantage of being able to record and playback sessions. I know work has already been done on this with AdProd but it has not progressed beyond that. Another idea of ICA Stream is the ability to broadcast to multiple players at the same time. This would give us the ability to broadcast one stream, which may or may not be recorded. The power of this is that we would not need to worry about scaling since MetaFrame does not need to support the ‘splitting’ of the session to multiple clients.

ICA Stream also makes it more real to have a collaboration server. Most of the data will be outgoing from the initial point of view, but it does allow for the rapid transmission of new information.

Some of the ideas are still a bit raw but I wanted to express them to start some discussion. I can see this product fitting into the Virtual Workplace vision, but not quite from the angle that has been presented to this point.

If you have any questions about these line items, please send me an email. I could spend a lot of time trying to explain these ideas but I will instead assume that you already know what I am talking about.

Ideas
—–

  • Treat ICA like it is something that can be recorded and played back
  • Allow users to access these ICA streams to get desired information
  • Provide a way to transmit any information to anyone as fast as possible
  • Make the web interface more alive with live data feeds using ICA Stream
  • By broadcasting one ICA Stream, it is possible to support many users at once
  • Allow companies to track transactions (banks, ordering, reservations)
  • Recordings can be selected at any time and require no MetaFrame resources
  • Act as if ICA is a TV broadcast – some people have no need to interact
  • One ‘teacher’ could demonstrate with MetaFrame to an unlimited number of ‘students’
  • Support primitive interactivity by creating ‘click zones’ for clicking on
  • Selected zones act as hyperlinks to other streams or positions in current stream
  • ICA Stream can be fully ‘live and interactive’ if it is ‘solo’ or ‘teacher’ mode
  • ‘Teacher’ role can change to another person just like a typical meeting
  • ICA Stream data could be fed to non-PC devices potentially (mobile phone, PDA)
  • Well suited for environments that have trouble with latency (Satellite, GPRS)

Benefits
——–

  • ICA is much more efficient than other Session playback techniques
  • Can broadcast one ICA session to many clients (very good for scaling)
  • On-demand ICA Stream sessions
  • Good for education/training, news/live data update, or system monitoring/auditing
  • Excellent for presentations and tele-conferences
  • Possible to extend concept with limited interactivity (menu select, next slide)
  • Possible to mix with fully interactive sessions
  • Different streams could be played based on user selecting other paths

Features

——–

  • Auto-detect bandwidth and best fit the closest matching ICA Stream
  • Live and Pre-recorded ICA Streams
  • Pre-configured color depths and resolutions for sessions on MetaFrame
  • Audio support
  • Uses ICA Stream Player to receive ICA Stream
  • ICA Stream Server (Responsible for ICA Stream transfer to clients)
  • ICA Stream Player (Play Session)
  • ICA Stream Recorder (Record Session)
  • ICA Stream Editor (Edit Recorded session)
  • Can operate in either messaging or streaming mode for data (UDP versus TCP)
  • Data between MetaFrame and ICA Stream Server should be highest quality (audio/video)
  • ICA Stream Server should have filters to reduce quality based on connection
  • Stream connections can support Rewind, Fast Forward (recorded), Pause, Play
  • ICA Stream elements could be cached (sounds, bitmaps)
  • Could use CSG for secure ICA Streams
  • ICA Stream Server could re-mix stream based on connection (high, medium, low bandwidth)
  • Directory of resources available from ICA Stream Server (streams, stream properties)
  • Security model for granting access to ICA Streams
  • Use Internet multicasting if it makes sense

Obviously not everything was done for this idea. It was a tall order. For awhile the product seemed like it was not going to make it through. However, it did and from what I have heard it is doing well.

Why am I sharing these ideas? There are a few different reasons that come to mind. Perhaps the first is to show that Citrix has been thinking about certain topics for a number of years. The second reason might be to see how much interest there is still remaining in these topics. Probably the real reason is spend some time looking through the archives to find anything interesting to bring back to share.

I’ve been interested to hear more about how other technology companies generate ideas and it is so rare that I hear any decent details. Being that I have only worked for IBM and Citrix, I’m also certain that my view of creating ideas would not match the rest of the industry.

Perhaps this is because ideas are considered to be quite valuable and the companies do not want to disclose. I would argue that ideas are almost useless unless they are acted upon like a hedgehog from “Good to Great”. It’s really not the idea anyhow. An idea is like a match. If it catches, it creates a much bigger fire. If it is never used or never starts a fire successfully, it just sits there. The match can start something big but only if conditions are right. The same is true of ideas. Without the willingness to try and the ability to support the right decisions, the idea will wither and die.

This just means that we make ideas more important than they really are. There are probably millions of good ideas on the Internet. It is much more difficult to do the work needed to make any of those ideas a success. The glorification of ideas goes back a long way. The realization that this does not actually accomplish anything by itself is a much healthier way of looking at it.

Single User ICA Server – Citrix Product Idea 431

This idea was documented in an email on May 30, 2003. It had been an idea that I had advocated from years before but it seemed like a good time to document it with the hopes that it would get better chances. The basic idea was to sell a single user version of our main product for use on consumer computers. During the early 2000s, there was a strong push to have more products with the hopes of raising more market share and more business in general.

Here is the idea:

This idea for a single user ICA server has been around for quite some time but I wanted to formalize why it is important.

1. Gets us into the consumer market so that people can use it at home and on their workstations
2. Potentially gives us a product that is extremely popular with consumers that give us better name recognition

3. Allows for sharing applications between users using the machines they are working on
4. Avoid issues that multi-user situations brings to applications (all apps should work given enough bandwidth)
5. We can charge money for this and improve our income
6. Could be sold in retail markets
7. Would encourage people to further invest in Citrix technology in the MetaFrame suite
8. Allows for the allocation of one machine per user which would guarantee performance and usuability.
9. Lower cost entry point to using Citrix technology
10. Single user server could integrate into Citrix farms for the intent of publishing one app to one user
11. It solves the problem of getting the user to their desktop to run their desktop apps if they are remote

The first problem with getting to be a $1 billion dollar company is to get people to know who you are. The easiest way to do this is sell them products that they can use. We currently do not sell to users. We sell to companies and IT managers. Some users do not even know they are using Citrix technology. Having a consumer product is a big step forward to having people know what you do.

That is why people will pick big software companies first since those companies usually have a strong consumer presence (like Microsoft).

Technically, I do not think it is difficult to do this product. The base is already with Windows XP and a prototype has already been done with Jardine.

If we do decide to go ahead with this project, we have the potential to greatly expand our business.

This idea was not rejected but marked for revisit in 2004. As far as I know, it was not revisited.

XenDesktop with PortICA was first to address the single user solution. Jardine got bogged down with Microsoft since it used Terminal Services API.

It is unknown if this would have really made a difference to Citrix. At this point most people that use remote connections in the consumer market would use Microsoft RDP. It helps to be built in. In most cases the consumers aren’t even aware of what is going on. Microsoft has done a great job of blending it in.

Even now there is an opportunity to make PortICA a standalone solution. If it was enabled this way, it would essentially allow for this idea to exist fully. Many customers have asked for a standalone version in the last few months. There is a sense that some don’t want a full VDI implementation and just want an integrated Citrix experience.

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.

Offline Access Idea 2003

In recent developments Offline VDI has gained much interest. Offline support has been a common request of Citrix for many years. Until virtualization came around, it looked pretty hard to accomplish this goal in a believable way.

I was busy searching for interesting old ideas in the Citrix Product Ideas database and stumbled across Idea 420 entitled “Offline access”. This idea came straight from a customer and I just tried to capture it and form some guesses about how it would be done.

For amusement purposes only, I’m including what I wrote for that idea. Remember that this happened May 22, 2003 right after iForum in Sydney.

Offline Access

I was asked for this at iForum by a customer.

His assumption was that if he was working on something that he could continue to work on it even if he was not online. His then would later sync up whatever work he had done when he connected again.

This might work fine in a file-based world, but does not carry forward very well in Citrix’s area of expertise.

It brings forward the idea of what kind of work a user would be doing remotely AND offline.

Most common practices are to either work on documents or presentations.

It would be rare for them to expect that they would be able to talk to a server since they are indeed offline.

So, they are only confused about how the work is being done. If they knew that they were really working online all the time with the server and the software being on the server, they would not ask for offline access since that would mean they would know that they could not run the app on their client.

But, they do not seem to know this. There is nothing wrong with this since it really shows how transparent we have made things work for them.

So, there really only seems to be a few options.

1. Tell them to install the server app software on their client and then manually copy the files back and forward

2. Create a process for automatically installing apps that will be run offline on the client and have a sync method to go between server and client

3. Pretend that we are the software and treat everything like a generic case and later sync up any changes [??? don't know what this means in 2008]

4. Create a new model that makes it less obvious where things are running so that it can happen on the server or client with or without a connection

5. A miracle

I think I like number 2 the best. It is the most practical and I would think that Microsoft would probably chose that kind of model. Of course this means that you would probably have to install the likes of Office on clients that might not support it, but at least it would run as the customer would expect. The syncing feature would also be useful since it would mean that it would probably be better than what people do normally when they go on the road. There is even a good chance that these users would already have the native apps on their client and all they really want is the ability to work on these documents/presentations in a more transparent fashion. For example, if I am offline, use the copy I checked out. If I am online, use the copy from the server that I have just checked in again. I suppose that a library model (books) would work well in this case. This concept would not work well in a database type environment where the file is huge and many people might be working on it. The best you could do is check out a section of the database that you wanted to work on (if this was possible) and then take it on the road. I think that people are still going to get confused but we can do a lot to improve the situation when the user is offline.

Regards,
Jeff

Returning to 2008…
I got a good chuckle on option number 5. This all happened before the advent of the possibility of doing Offline VDI for such a trick. Things have become much more apparent since then. It’s still not completely clear but it is not as far off as 2003 was.

Even with the current visions, it is not obvious how this could be made transparent. The ultimate model would call for dual execution so that the local copy would take over when the network is lost. At the current pace this is still years away and could require a remodeling of how applications work. In the non-Windows world this is already happening for the sake of web applications. Newer applications are becoming more tolerant of offline access.

The current vision focuses on taking a VM, checking it out, and running it on a laptop. Once the offline mode is over, the user then needs to check the changes back in. The good news is that this concept is very easy to explain and understand. The bad news is that it is difficult to achieve and tends to ignore the limitations of moving and syncing VMs. Baby steps moves the technology forward regardless of the pace.

Sometimes (if not most) it is just as important to sell the pitch to the consumers in a simple way instead of how it ultimately might be deployed. In other words, engineers often make the mistake of being technically accurate and usually deluge non-technical consumers (including internal non-engineers). This tends to polarize internal opinions to match the simpler model since the more precise model cannot be understood.

Having Offline VDI support would benefit Citrix customers based on the assumption that offline access has been an outstanding requirement for many many years. Obviously if people are asking for it over and over, it must have a valid business model that would help both sides.

Server Based Computing versus Virtual Desktop Infrastructure

One of the things I did not see coming was the pending battle between Server Based Computing (SBC) and Virtual Desktop Infrastructure (VDI). This first became obvious at BriForum 2008 with sessions titled such as “SBC vs VDI”. The resulting discussions were very lively and ran throughout all the different VDI discussions. This is also being shown through the variety of posts related to the relative benefits.

Having been around the block a few times, I see this discussion to be a bit religious in nature. In other words, every one has strong beliefs and it is unlikely that many people are going to change their minds about what they believe in. Secondly, it is pretty pointless to argue when it comes to doing what fits best. Either it works for you or it does not. Talk is cheap. :)

To me, the two are much more related that what people typically say. Surprisingly this can be true in life with many other topics as well. Some difference has been isolated and blown out of proportion to the point of excluding the other. Oh well, that’s just how people can be.

Truthfully, I would classify VDI as a new variant of SBC. Why? VDI runs on a virtual machine on a server. The truth is that by adding virtualization, it is possible to host multiple user desktops using the actual desktop operating system. The attraction is obvious if you understand the weaknesses of traditional SBC. With Terminal Services, there are limitations related to applications installing and the user not getting their normal desktop experience. There is also the risk of having one system being shared without virtualization. All it takes is one false step in kernel space in the system goes down.

On the other hand, virtualization has a cost. It should never be expected that virtualization will match native performance. Also, virtualizing at the hardware layer guarantees a great deal of duplication between virtual machines. This includes having a copy of the operating system per user. The disk model also means that each user is likely to own a virtual drive in the gigabytes. In collective, this adds up to a massive amount even if most of the space in the drives is not being used.

These are just some quick surface differences. Is there really anything worth getting upset about? Well, no.

But, strangely I sense this tension between the two groups. The old SBC group almost seems a bit threatened. Maybe it is just my imagination. If it is there perhaps it is just the uncertainty.

Anyways, Brian Madden has already declared that he thinks VDI is going to win. To me this seemed a bit early to declare and besides that it will not really matter in the end since both are actually SBC.

Perhaps another way of saying it is that VDI is disruptive and is not being treated real seriously by the old SBC camp. Well, some care. But the point is that VDI is seen to be a bit like a toy compared to the mature existing SBC market.

The news is that VDI is not going away and new trends saw that it is well on its way to supplant the older SBC business. I can sense a few heads shaking. Well, maybe not tomorrow. But, it will eventually.

The reasons will become more obvious as time goes by. The first step was to remote the desktop environment in its natural state. This has been accomplished. The next step is to tackle things that SBC never did quite figure out. This includes the ability to remote high performance graphics/audio on the LAN. This too has already begun to happen. Further refinements are coming including the ability to remote USB devices and further integrate the experience between the two machines. The goal overall is to completely blur the distinction between the client and host machines. In a sense, you get two machines with one environment with the combined power and strength of each.

Ultimately you get the ability to have a universal desktop which works anywhere (well almost). This universal desktop does not really care how it is run (local or remote) and always adjusts to situation with the maximum performance. It is incredibly idealistic to believe this is possible but the writing is already on the wall that it is coming and sooner than anyone is expecting.

Part of the reason I blog is to share what I see coming. It is hard to convince anyone in the beginning but given enough years it eventually comes true.

About five years ago I put forward an idea inside Citrix that we should investigate using virtualization to support different operating systems remotely. This was proposed to address the need to remote workstation operating systems (like Windows XP) which would be more compatible than the server (like Windows 2003). It was also hoped that we could remote things like Linux if needed. I saw this as the future of MetaFrame since it would give a much more mainframe like approach to hosting different platforms. In other words, the only decent way to truly support applications is to given them what they expect and then find a way to remote it. The idea did not catch on at the time. It would not be until VDI came around that this idea finally came to light.

About 13 years ago I proposed that we create a single user version of WinFrame that would work on Windows (Not NT). The idea was it would help to have a commercial product intended for consumers. At the time Citrix was not widely known and an easy way to address it was to target the lower end with a product that would be seen and appreciated. It was not until PortICA came around in 2006 that this begun in earnest.

It is little known that around 2002 there was a project called Jardine that duplicated MetaFrame on Windows XP using Terminal Services. This was very clever and timely work done to target managing XP with ICA. The problem was that Microsoft said no. They didn’t like it. They refused to license Terminal Services for the non-server environment to Citrix. The project died soon after.

PortICA was built on the assumption that we could not use Terminal Services interfaces. This meant rewriting aspects of the TS stack since we simply didn’t have rights to them.

The realization that came from this is that Citrix once again had control of a stack and that past limitations would be removed if we saw an opportunity. There is a big play for potential improvement over the typical TS code base.

Balanced against this is the constant tightening of the TS platform with what Citrix is allowed to do. Microsoft wants things to be just so and Citrix really has little choice in the matter.

But perhaps the most obvious reason why VDI will come out ahead is the shear number of competitors chasing after the business. Unlike old SBC/TS, there is pressure to evolve quickly with some very nimble and small companies. It will be true that companies like Citrix will validate the market much like IBM did the original personal computers but this does not mean that anyone is guaranteed to win. This is not related to size but rather mind share. If Citrix does not move quickly to embrace VDI even stronger, it risks losing this market to younger players.

However, all is not lost. SBC is still important and will be used to leverage into the VDI market. The most clever thing that Citrix could do right now is combine their offerings back into one. One of the most consistent messages I heard at BriForum is that one product is better than two in this space. This is largely viewed from a management angle. One of the companies is already providing a dual VDI/SBC product. There is no reason for Citrix not to do this as well.

So, why am I writing all this down?

Well, I’ve written it recently internally (based on the trip report to BriForum). My concern is that this information will not reach the right people easily. I also would deem that this kind of stuff is not secret and should be openly shared. Pretending that people don’t know is perhaps one of the most severe mistakes any organization can ever make.

Having come to the end you might be curious what I think of the title.

My answer is that it should really be “SBC and VDI”. The versus implies turmoil and in this case it should really be overlapping circles of coverage.

Visions of Nirvana – Less Is More

Future Nirvana

I must commend Chris Fleck at Citrix. He has put forward a vision of a world that does not need laptops as we know them today. In January, Chris posted an article calledThe Nirvana device a Smartphone as a PC alternative on the official Citrix blog site. The idea is brilliant. If you already have a computer in a small form factor, why not take advantage of it for other uses. Instead of lugging around a laptop, why not just take the pieces you really need. Once you reach your destination, just plug in the small computer into a docking station which gives the same experience as a desktop.

I highly recommend reading this post. It is a taste of things to come. The momentum is building and the companies involved are beginning to understand the value of small portable computers (PDA/Smartphone). Chris mentioned that XenDesktop could be used in this case. This is very relevant to the experience the PortICA team has. The value would be that the desktop would be hosted from a common place and the grunt would live in the data center. The actual benefit would be derived at the “client” end since the small computer would be acting as a “thin client” but yet be able to give the full experience of Windows to desktop sized devices (keyboard, mouse, video). It’s a powerful message. Something as small as a mobile phone could be strong enough to run a fully loaded Windows desktop with the full desktop experience. All this from a device you can easily carry and also use as a phone/camera/music player.

There would be risk of overloading the feature set of the device and potentially confusing the consumer market. However, given that mobile phones already thrive on this model of adding new features and that the majority of the consumers are fairly young, it is not hard to see initial acceptance building.

I believe the real value comes from being truly portable. Laptops are portable but their bulkiness and weight adds up over time. There is a threshold for how long I’m willing to hold on to one of these laptops while moving around. Large airports can be a real test, especially when you have to pass through painful security checkpoints that treat laptops as potential WMD. I never get tired of carrying a mobile phone however. Mobile phones also don’t need cases. That alone is a big plus.

There are lots of cool comments in the post from Chris and one of them was to make everything wireless. This is completely valid and should be coming in force assuming that things like wireless USB catch on. Obviously Bluetooth is already in that space. The key is to find the right mix of technology that best suites the environment.

There are all kinds of security issues that pop up. Given that you no longer have a fully contained system (laptop) for your keyboard, mouse, and video, you are going to need to trust other devices. This leaves you a bit vulnerable if these devices are not under the control of you or your corporation. There is nothing stopping someone else from modifying a public docking station in order to gain personal and financial information. There would be a need to identify trust with unknown devices. From everything I’ve read, this is a difficult task. It is much safer to have full control and this implies that the individual and the company have safe havens for doing work. In most corporate environments, this would already be true. The IT worry is that users are always going to be more risky than what they should. Instead of striking a balance, most companies will decide just to clamp down to the point that makes all forms of semi-risky behavior impossible. The users get frustrated and just either give up or break the rules even further. It seems that solving the trust issues is going to be one of the most important problems to solve for the “Nirvana” solution.

In the very long term, the goal would be to take nothing with you. This implies that the work you do actually resides in the network (or cloud depending on your favorite phrase). People like Google have experimented heavily with this and have come out ahead. It seems like some of the initial burst of activity has died down a bit but the message is clear. Companies like Google are targeting creating decentralized environments that allow you to continue work from any machine hooked up to the Internet. Most of this is fairly small stuff when it comes to storage but the progression would take it to the point that a user could have hundreds of gigabytes on the network without any idea of where it really lives and yet be able to use that information from anywhere. This is the kind of thinking that will lead to the desktop becoming more of a amalgamation of resources than just one system. It’s hard to explain but it is perhaps best to describe as the net becoming more like a human brain in how it processes and stores information. Once it gets past a certain point, things will just take care of itself without the need of external manipulation. Yet, the user will always get the benefit of this “brain” which resides on the net.

The trend is also towards this “brain” being a shadow of the user. This would occur in such a way that users could create environments on the web that do work for them and be the agent in the virtual world. I know this all sounds a bit like science fiction. However, the elements of what is to come are already here and it does not take too much to see how these pieces are going to fit together.

Getting closer to reality, the next big step will be to reduce the footprint of the laptop to the point that it is actually comfortable to carry around for long periods of time. The advancement in this area comes from better networking and the ability to have small devices drive large ones. It also comes from the vision that laptops aren’t always best and that converging technology means that we need to start thinking smaller might actually mean also being better.

Until better input/output technology comes around (perfect voice recognition/speech generation, fold/roll video screen, perfect laser input or equivalent) we are going to have to use what we have. The most obvious path is to specialize the devices for what they do best. This means accepting that mobile phones have small screens and lousy input (keyboard) for the most part. These weaknesses can be negated by allowing USB access (host) or to drive via wireless (Bluetooth) to decent keyboard and mice devices. The video hardware on the device needs to be able to support desktop resolutions and have an interface to getting to a standard VGA or DVI input. There is a new class of video devices based on USB that could be a decent alternative. Chris has described all this much better than what I have here so I’m hoping you’ll spend time reading what he thinks these devices need.

Sometimes acknowledging a weakness is the first step to learning what to do differently. The trend I see coming is further device specialization and networking. By using the strength of the link, these devices act together through the computer hub. These devices can act as a single system from the glue that comes from the core computer device. As time goes by, the need for the computer hub to have more things will actually reduce. Features will get moved to what does them best.

I see it as the splitting of the workstation as we know it today. It no longer needs to live in one box. It’s not easy to see how this is completely practical but based on Chris’ vision, it is becoming clearer. As of this writing, Chris has around 3500 visits to his post. I am certain this is the highest any Citrix blog post has ever received. It speaks volumes to the interest in seeing this vision and making it real. Well done Chris!

Tasting Tomorrow

You never know where the future might take you. Tomorrow is going to be different from today as today was different from the day before. Even in “Groundhog Day” the same day was different every time. They say that you cannot predict the future. They even say that you can’t go back. Both are true of course but some people have a knack for simulating both.

Citrix is not immune from this either. The trends and tides of the world carry the companies of the world with it. As self appointed soothsayer of Citrix’s future environment (just for fun… don’t quote me thank you) (second disclaimer – this is my own opinion and does not reflect the position of Citrix or what it believes will happen).

There are a number of factors at play here:

  1. Bandwidth is going to increase greatly in the near future as latency is reduced
  2. Raw CPU power is going to continue to increase mostly from the efforts of having more processors per box
  3. Cost of exchanging data will continue to go down
  4. More of the world will be wired or wireless as time goes by
  5. Devices will continue to get smaller and more specialized as consumers find new uses for them
  6. Storage will explode in capacity as it becomes possible to store data either internally or on the Internet
  7. Web technologies will finally approach the interactivity and richness of typical Windows or Mac applications
  8. Security will continue to get more intense and will require some big redesigns in existing systems
  9. Users will want to know less about how things work and want their environment to be as seamless as possible
  10. Distributed solutions will hit the mainstream and allow for hosting of components/applications from anywhere

This is just a sample of the kind of things that aren’t that hard to see within the next 10 years. Of course some are more obvious than others and some might not happen at all (like the full application level support on the web with web tools).

The point is that most of these are long term trends that will continue to expand.

The areas that I think would best help Citrix to address these items are:

  1. OpenGL/DirectX/3D Graphics remote rendering to support highly demanding tasks like imaging and design
  2. PortICA for other platforms to allow for a wider range of applications to deliver
  3. Tighter integration with Virtualization platforms to guarantee performance and reliability of applications
  4. Seamless integration of applications regardless of original platform (remote and local combined)
  5. Unified Desktop model to allow the hosting of these disjunct set of applications
  6. Abstracted server/client model which would allow an easier model to use on new/different platforms
  7. Re-access the current product suite from the ground up to form a unified security model (potential redesign)
  8. More tools included in Citrix software to access not only user counts but also the end-to-end management of sessions
  9. Continue to evolve older Citrix products based on changing environments and customer requirements
  10. Capitialize on the latest advances in computer technology and inject this intelligence into our products

This is not necessarily a comprehensive list but it is intended to stir up some ideas internally and externally.

One of the things that I have observed over the years is that it is often the work that is considered routine that is the most interesting to customers. Recently I have been reminded of this related to COM port redirection in CPS. It has been determined that with certain configurations it does not operate as best it could. If there is a relatively high latency (>200ms) over a WAN, it can take quite some time to get the port to open based on individual settings taking place after the open. The point is that COM port redirection was not implemented with that much distance (or time) between client and server. Normally it would work out okay even though it took so long. The user would just suffer the additional time. Unfortunately in this case it actually leads to a timeout at the software layer and the transaction is ended. In this case, this was found during a pilot at an undisclosed customer.

There is a possible solution but it will take time to design, develop and test. The most likely outcome is that the COM port redirection will be changed in the future to allow for buffering of requests so it will not need to acknowledge each individual transaction before continuing the next. It’s tempting to consider just trying stuff but long term this really does not make sense. Perhaps it would benefit the customer to see if this is a step in the right direction and also to show that we do care that this does not work as expected. However, it would still be better to try solving this with the bigger picture in mind for all the other customers that we have as well.

I’ve told you this story really just to prove two things. First of all, customers often care about what hasn’t been considered for awhile. Second, these issues are usually not rocket science and can be solved. The most daunting task related to this is evangelizing these kind of problems to get it solved more universally than just a fix for one customer.

Perhaps you can help me out there. I’m not advocating being a support person but I’d like to hear some feedback about the kind of things that you find lacking in the current Citrix product group. I’m looking for things that aren’t overly exciting (read new) but could potentially be solved in the not too distant future. I’m not expect tons of feedback but see this as your opportunity to share with the world what you wish Citrix would do better when it comes to the whole Citrix experience. I’ll probably be more receptive to issues related to CPS but if you want to tell me about other areas, go right ahead.

Thanks for that. I hope you believe that I really am interested. Because I am!

Please send email to my email address in the “About” page if you don’t want to submit comments here. Thanks again.

Webcounter

Files, Folders, and Folly

The concept of files has been around for quite some time. I just tried to find out how old the idea was but did not find a date. Instead, I found a very exciting entry at Wikipedia about file folders. If you feel you need to know more about how many different kinds of file folders there are, I encourage you to visit.

What I really want to write about is how we store information. The original IBM PC stored its information on a floppy disk with essentially one “folder”. In this folder, each item, called a file, had a name. This name was restricted to a naming scheme devised to give some meaning without using too much space. For most of you, that means being stored in FAT format. The reason I’m going down memory lane about the IBM PC is that this initial machine set the tone for all future work done on its descendants. Through the years, a number of features have been added to this model but basically it was all derived to be compatible with the existing machines.

You can have your folders be on a network share. You can have your folders follow you around based on your profile. You can have your folders even potentially be coming from the Internet. Your files and folders are always going to need to be somewhere so you might as well accept the need to expand what folders can do.

Here is where it gets a bit more interesting. It is great to be able to have folders that go with you. The user profile folders is a good idea but it really does not address the need to be able to take all your folders with you. Okay, I’ll admit that I’m not a portable file folder expert. I will also admit that I see most people get really lost when it comes to keeping track of their data on the go.

Most people accept the drudgery of taking laptops with them to make sure their data is there right next to them. Anyone that travels can see the frustration of having to go through security with these heavy annoying limited devices. I can attest to this level of frustration with having two hard drives fail over the period of a few months even though I treated the machine like it was made of china. The only idea of how it failed came from how it would get bumped around on the conveyor belt at the security checkpoint. Devoid of its usual protective casing, it would bounce around like a bit of butter on a hot pan. Well, that was a bit dramatic but I swear I saw it jump a number of times when going over joins in the metal cylinder conveyor belt (why does it need to be metal on one side and smooth fabric on the other?).

The point is that it can be a hassle to take your data with you. But what other option is there?

Don’t carry the data with you! Or, if you do, only take the storage device (disk or USB stick).

Why?

Because the future of data storage is coming and it is coming fast. People like Amazon (and most likely Google) are waking up to the possibility of cheap online storage. This model blows away what can be done by most companies, even the really big ones. Even more amazing, anyone can use it. So, what this means that instead of carrying my folders around with me or forgoing their use, I can actually access them anywhere the Internet without having to setup anything special in my company or personal web server. Now, I can hear some of you saying this would not make sense. What about security? What about the programs to interact with this storage mechanism?

Ah, well, that is annoying isn’t it?

So, I predict that someone will understand this model and invest heavily in providing a cheap easy way to secure the information on the web using the standard folder model that already exists on the systems. In this way, it would be possible to mount drives on local systems from the remote online storage.

It gets better. Given that you can allocate a large amount of storage on the web that is managed (backed up and always available) you could actually capture that state of your workstation (in a virtual way) and let this image be your hub for zooming around the world. Imagine how much happier your travelers would be if they didn’t have to take around those damn laptops.

So, if any of you feel the need to create such a solution (or are aware of an existing solution) please let me know. I’d love to hear the progress report of such a venture and if I like it, I would even use it. :)

In the Spirit of Innovation

As you may already know, Citrix has an internal program for gathering product ideas from employees. In a previous post, I asked for customers to submit ideas so that I could forward these ideas into the product ideas database. The good news is that two of you (Alexander and Simon Bramfitt) submitted ideas that are now officially being reviewed.

I have not yet heard back any news but that is to be expected since I only submitted them in the last couple of weeks.

The reason for submitting this post is fairly simple. I want to gather some interest in helping Citrix define what products customers want the most. It can range from fairly simple improvements all the way up to totally new product lines. Citrix is much more receptive to this kind of feedback recently and it really is a great time to speak up.

Our original Citrix history is full of examples of listening to customers to make a greater impact on the market. It is often the last 5% of work that makes all the difference to everyone involved. Sometimes it just takes a few more bits of things added to truly make a highly successful product.

From my own perspective, I’m excited to have the chance again to reach out on the web to have a better understanding of what people are looking for. I must admit that keeping customers happy can be a very rewarding experience. It is even better when people are surprised with the level of service and their expectations have been surpassed.

The area I’m most interested in right now is related to the current PortICA project. Instead of just saying an open ended question, I’ll instead focus on more specific questions:

  • Does having ICA be hosted in XP instead of Windows 2003 have value for you? If so, why?
  • What kind of features from Presentation Server do you consider the most valuable on Windows XP desktops?
  • Do you use RDP to Windows XP today and are you unhappy with any of its features (or lack thereof)?
  • Are you interested in supporting more graphically intensive applications like OpenGL remotely on XP?
  • Are you a believer in any current desktop initiative (DVI, VDI, DDI) and what makes it so compelling?
  • What is your biggest issues with Presentation Server that might be solved with ICA on XP?
  • Do you have any plans to push desktops using virtualization software like VMware?

You obviously don’t need to answer all of these questions. Pick the ones you like the most. Please leave feedback and I promise to share it with the PortICA group.


Webcounter