Showing posts with label Cloud Computing. Show all posts
Showing posts with label Cloud Computing. Show all posts

Friday, July 15, 2011

Cloud and Client chat on CodeCast


In this episode of CodeCast, Ken Levy interviews Dr. Neil Roodyn discussion the differences and scenarios around cloud and client computing. Topics includes applications running in the cloud, documents hosted in the cloud, and rich/smart clients that use the cloud as part of the solution, with more and more of a mixture of client and cloud within applications rather than one versus the other.

Wednesday, March 09, 2011

It is not cloud or client

With so much discussion recently about moving your computing solution to the cloud as opposed to building a rich client application I thought I would make some observations.

Step back 30 years (1981) to the days when the mainframe was being positioned as a computing solution for business via thin client terminals. At the same time a new type of computer was starting to become popular, the personal computer. The personal computer was a low powered device by comparison to the mainframe, but it was all yours,.There was no sharing of resources or concerns of your personal and private data getting into the wrong person's hands. Microsoft made it their mission to put a computer on every desktop, it was a noble cause, a democratization of computing power. As personal computing power increased and with it the software for personal computers, the dream has become a reality. Now the modern day personal computer is often more powerful than many of the mainframe devices. The personal computer has also become so cheap as to be considered a disposable item by large companies. Place a large number of personal computers together and you can create an immensely powerful shared computing resource. In many ways, this stacking together of large numbers of computers provides more redundancy than a single large powerful computer. When a part of it fails it is really disposable and can be left as a dead component in the array of computers. The operating systems that these personal computers run is not considerably different from the operating system that runs the modern day laptop or the desktop computer.This has lead to a shift in the dynamics of the industry. The manufacturers of the personal computer operating system (let's face it, I am talking about Microsoft here in the main), is now the same company that is producing the operating system for the shared resource computing accessed through the modern day terminal (the browser). This now means the same company that has lead the charge to bring computers to the desk and into your hands is motivated to create large online shared resource centers, centers that run their operating system.

The interesting thing is that over the last 20 years Microsoft's Windows operating system has matured into a far superior server technology than client technology. Consider the Vista issues that clients reported and compare that to the lack of issues reported for Windows Server 2008. Windows Server 2008 is a really solid operating system and yet at its core is the same operating system as Windows Vista. It should not be surprising then that a company like Microsoft would play to its strengths and be motivated to sell more of its server operating systems. Windows 7 has done a lot to regain credibility for Microsoft as an operating system on the personal computer yet it is clear that market share is being lost to other products.

Many of these other products are no longer the traditional 'personal computer' and Steve Jobs in his announcement of the iPad2 referred to these computers as 'post PC' devices. Clearly your phone, slate computer or TV are not quite the same as your personal computer, yet these devices all harness the same (if not more) computing power as the personal computer of 5 years ago.

These post pc devices are often designed for richer media consumption such as movies, video chat, music and games. In order to optimize the experience for the consumer the software running on the devices is getting increasingly complex.

This clear movement to richer and richer experiences on client devices leads to a higher and higher consumption of bandwidth. At the same time greater levels of abstraction are being created by developers to simplify their lives. For example consider the heavy use of XML as a data transfer medium, XML is human readable and easy to debug, yet it increases the bits required to send the information compared to other methods software developers used when the available bandwidth was far more constrained. Couple this increased use of bandwidth with, what seems like, an insatiable appetite for richer experiences and we have a scenario where more power is being required on both the server and the client.

The cloud or shared computing resource is here. It has been here for a long time and will be here for a long time yet. Creating a new name for this massive shared computing resource may help with marketing it as the new thing, but ultimately it is nothing more than a huge online computing platform that is shared and scalable. I am sure I remember a salesman from IBM telling me this about the IBM offering in 1986!

The smartphone, tablet, tv and laptop will always provide a better experience when the application is written to target that device specifically. The web provides a lowest common denominator for interfaces that might be interesting for businesses that want to maximize their reach at the cost of user experience. The most enjoyable experiences will always come from applications designed to take advantage of the platform upon which they are running.

I think the argument of cloud vs client is not a real decision that needs to be made. To create an optimal user experience requires a rich client application. To make the experience seamless across the different devices in our pockets and on our desks requires shared storage that is reliable, scalable and can be accessed from (almost) anywhere. It is not about cloud or client, it is about cloud AND client.

Monday, October 18, 2010

Certification For Microsoft Surface Applications

Over that last 2 years the nsquared development team has been building Microsoft Surface applications. We are one of the most accomplished teams in the world at developing tabletop computing experiences. We wrote the book Developing for Microsoft Surface and have delivered all the global training to Microsoft Partners for Surface development. The certification of 10 of our applications now puts another achievement on our list to validate we are masters of our craft.

It is important that customers can differentiate between validated experts and those that claim to know what they are doing. Building software for table top interfaces such as Microsoft Surface is not a skill that can easily be adapted from desktop programming skills. This is not about the technology, this is about creating simple, easy to use, and engaging experiences. At nsquared we are bringing our expertise in this space to produce applications that owners of Microsoft Surface can purchase, download, and start using today. Having our applications certified for Microsoft Surface provides a level of assurance to our customers that we are delivering high quality software that will deliver a rich Surface experience.

My belief is that within 5 years we will see a proliferation of table top computing devices and at nsquared we plan to be at the forefront of this revolution.

Wednesday, April 01, 2009

Open for Cloudy reasons

The latest buzz in the Cloud computing blogosphere seems to be on the Open Cloud Manifesto. This is a strange document, which at its core seems to be based on the fact that a bunch of companies do not want to pay for the effort of others in order to gain their own business advantage. 
Suggesting that all the software that supports cloud computing needs to be open source, leaves no room for a business that wants to innovate and capitalize on IP created to enhance the cloud computing effort.
It seems that IBM is one of the key players behind this manifesto. IBM has long been a strong proponent of Open Source as, for a consulting and services company, software is a cost in their business model. Reducing this cost to closer to zero is something they must strive for. As a software developer I like to get rewarded for the software I create and innovate. 
Reading the manifesto it seems to be a very limiting concept; blocking innovation of new programming models, blocking innovation of new protocols and blocking the independent innovation of cloud technologies.
While I can see advantage in defining some standards for protocols I think we already this with W3. It is not clear to me what this manifesto adds to the cloud computing world.