Aggregate computing has existed in various forms over the last 50 years. It usually lives within the realm of the bigger systems and is focused on high power jobs.
IBM built a model around its mainframes that made everything virtual (VM 360) that basically meant that the software had no idea how the hardware was actually running. This is a huge generalization, but essentially true.
My translation is that aggregate computing allows for collecting resources from different parts of the network and building a greater whole. Some would call this distributed computing but I’m really only focusing on one aspect of it.
What I would like to see happen from a Citrix point of view is to have it so the client and server form a tighter relationship. The long term goal is to have the two systems act as one from the user’s perspective. There are a number of challenges to overcome to make this happen but the end result will give the user a more powerful system which uses the best available resources to do the tasks at hand.
In the much longer term, it would be possible to expand this relationship between many machines until you had basically formed a computing environment which is much more powerful than what an individual user would have access to.
The idea is to bridge between the systems and tear down the barriers between different platforms. It is idealistic but it is where things are going.
As an example of this (even though perhaps not the best), it would be possible to combine disk resources for the user. A C drive on the server could be merged with the client. Rules would apply to how things were merged but the user would see a fairly decent mapping of what was available for a combined C drive. This solves the problem of client drive mapping (with drives not matching and being where expected) and also provides a way to gain access to data and programs in a more natural way. The same could be done for other resources (like the registry). Obviously it is early to be talking about this with regards to Citrix. It is an idea that has been floating around for a bit and it seemed like a good time to get it out there.
What I imagine is that collective model would present a view to a broader system view. It is kind of like saying that we could build a virtual desktop that is built upon potentially multiple real desktops. This means that the collective power of these desktops could provide a very heterogeneous range of applications. The key concept shift is that this applications would appear to be running native when really they could be running anywhere in the world. The other key point is that they would all think that they really are running on the same desktop. All the resources could be shared between the different desktops (within reason). This idea is a step closer to getting Citrix to embrace distributed computing.
What I would like to convey is that this idea is very raw. It would be great to hear some feedback about what this idea means to you.
Potentially this kind of reasoning could help shift the logic of where CPS and CDS are going. In many ways, Citrix has been attempting better integration for years by adding more features to work between client and server. What is missing is the leap towards understanding that the two systems should be merged under one virtual umbrella.
Taken to its logical conclusion, it seems to me that you’re talking about building something like CPS into the operating system, so that every machine could farm out its resources and applications to any other, and making the whole self-administering. I suppose that would be the ultimate partnership with MS …
I’m not completely sure that I’m in sync with what you have said Hugh. It is like being able to build an operating system between machines but somehow it is different. It is a bit more like taking building blocks using single systems or sessions to build new composite systems/sessions.
The most common case would be to combine the resources of the the server session with those on the client to form one combined resource map. This would things like applications (and code execution in general) into a common mapped area.
Taking a step backwards and trying to fit back into what you said….
“building something like CPS into an operating system”
Using combined systems with a co-ordinated effort would be very much like putting the operating system in the space across systems with networking. CPS could act as a conduit for application and resource sharing for a given user. In that way, it is like having an operating system for users on CPS.
This part is harder. It implies delegation and the ability to dole out work to other systems. It hints at not using central delegation with the ability to form emergent behaviors from relatively simple rules. As programmers, it is different to view things in a distributed way when we are used to sequential thinking and control.
“ultimate partnership with MS”
Can you expand on this comment? Is Microsoft already interested in this space?
I wholeheartedly agree with your vision of aggregate computing. The terminology, however, could be misleading. While I understand that you’re getting at aggregating the resources from both server and client into one, you’re viewing this from an IT perspective rather than what counts (a user perspective). Perhaps Citrix had the best term years ago which is “Seamless” computing. I’m particularly interested in making the computing experience more seamless for end users as I believe that’s one of Citrix’s major hurdles from an end-user acceptance factor (a point I hope I expressed well at the last Citrix Tech Professional meeting last week). Regardless of semantics, it’s certainly exciting times ahead. Keep up the great work.