Advantages of desktop applications vs. applications optimized for the cloud
As cloud computing gains traction with enterprises and end users, many conventional applications are moving to the cloud. One reason is that cloud applications are often less expensive, simple to manage, and easy to update and use. Since a browser is the most often-used tool for end users, many find it convenient to work with cloud-based applications that are delivered through a browser. Each delivery method has advantages and disadvantages.
- Software installation
One of the biggest advantages to cloud applications is that no installation is required. You can avoid the time and effort required to download software. The cloud application is rendered in the browser, thereby exploiting the browser capabilities such as flash content rendering and CSS. Advantage: Cloud
- Resource utilization
In cloud applications, most of the heavy processing is handled by the service provider, which minimizes the requirements on your system configuration. Desktop applications require high memory and processing speed for complex applications like graphic design. Advantage: Cloud
- Software updates
Desktop applications need to be updated periodically. The desktop application prompts you to download updates or you need to manually update the software. Cloud applications are updated by the application service provider. Advantage: Cloud
- Platform independence
Desktop applications have to be developed for multiple platforms, such as Windows, Linux, Mac, and specific hardware. Since most cloud applications are developed to be used in a browser, they run on various platforms. Advantage: Cloud
- Networking capabilities
One of the key advantages of the desktop application is its independence from internet connectivity and bandwidth considerations. Cloud applications rely upon the internet infrastructure for data transport and content rendering. Advantage: Desktop
You'll likely encounter advertisements in cloud based applications, while few desktop applications display ads within the application. This is not a technical issue, but the fact that bandwidth is a very important consideration in cloud application makes us consider wasted bandwidth that ads rack up. Advantage: Desktop
- Authentication and authorization
Cloud applications use end-user information for a variety of reasons, such as tracking usage or delivering quality of service. We find many cloud applications offer premium users improved bandwidth, additional storage and other value added features compared to the features offered to users who do not have premium service. Most desktop applications require little if any authentication, and if they do, they will rely on the operating system to determine the privileges, with system administrator having full access. Advantage: Desktop
Desktop applications are single-tenant-based applications where as Software as a Service (SaaS)-based cloud applications are multi-tenant. With a multi-tenant model, application upgrades are taken care of the SaaS provider. With single-tenant applications, configuration and upgrades are done by the user, which allows you to offer specific functions and customization. Advantage: Both
- Data storage
In desktop applications the data is stored on your own computer, whereas in SaaS applications data resides in the server space allocated to you. Since most of the processing is handled on the server side, data needs to be transported to and from the cloud application service provider. This can impose a requirement for high bandwidth to accommodate frequent and large data calls to the cloud server. Advantage: Desktop
Desktop applications have information on the internal details of a system, such as data storage location, encryption used, and user privileges. One of the biggest challenges in cloud computing is having lack of proper information on location of the data, recovery policy used, encryption method, and trustworthiness of the cloud service provider. Owing to these factors, users may hesitate to place highly sensitive information on the servers of third party cloud service providers. Advantage: Desktop
All web applications are not cloud applications
There is a misconception that all applications rendered by a browser are cloud-based applications. Actually, there are specific characteristics that make an application a cloud application. A few of the important characteristics of a cloud application are:
- It is multi-tenant.
- It is platform and hardware independent.
- It supports API access.
- It is accessible from any system connected to the internet.
- It doesn't matter to the user where of the application resides.
Migrating applications to the cloud
Many applications that were created for the desktop are being migrated to the cloud. In some cases, the same application is run in the cloud environment. In others, a different implementation of the application is run in the cloud. And, there are new applications developed specifically to run on cloud infrastructure to let you harness the advantages provided by the cloud. The following sections offer a comparison of cloud and desktop applications under various scenarios.
Same application on a desktop and in the cloud
Desktop applications can be run in a cloud environment, in a sandbox or through application streaming.
Desktop applications in a sandbox
One way to host desktop applications in the cloud is to use a service such as the one provided by spoon.net, which uses predictive streaming and application virtualization to provide a sandbox environment to run most Windows™-based applications. You'll have to install a plugin from their site.
In this method, a small part of the application resides on your system, and the rest of the component lies on the streaming server and is sent to you on demand. Application streaming in turn relies on application virtualization. The streaming infrastructure can be set up locally in a corporate environment or it can be accessed over the internet. Depending on the technology and the method used, the client may require a plugin or software to run the application that is being streamed. One tool that available is Application JukeBox from Endeavors Technologies.
There are some advantages to running the desktop application in a cloud environment:
- You can take advantage of the cloud infrastructure to minimize set up and software updates.
- Streaming the application lets you use the features of an application only when you need them, as opposed to installing all the features that he may not use.
At the same time, running the same application in cloud environment poses some disadvantages:
- You'll be dependent on network speed and availability.
- There may be some concerns about the installation of third party plugins.
Same application, different implementations
Many conventional desktop-based applications now offer a cloud version, too, to address the needs of both audiences. The cloud version of a desktop application offers convenience, but fewer features. Since it will be opened in a browser, it should open quickly so you can start working right away. A few of those desktop applications are:
- IBM Lotus® Notes. This desktop application offers a cloud version, Lotus iNotes, which can be accessed through a browser such as Gmail. Based on the features supported, Lotus iNotes is available in three modes: Full mode, light mode, and ultra light mode.
- Adobe. Similarly, it offers a cloud version of the photo editing software Photoshop. The cloud version provides fewer features than the desktop version.
- IBM Rational® Team Concert. A collaboration tool for software development teams. It offers two modes: A desktop-based tool with full functionality, including a create/edit task, a source code editor, and more. The browser-based version omits a few features, including the source code editor.
An advantage of having an application that is supported on both the cloud and desktop is the flexibility to use the version you need at the time. The operations performed in the desktop and the cloud version of the application will be in sync, to ensure consistency of state and data, although the user interface will be different. Consider the following scenarios:
- A user with a Lotus Notes e-mail client is browsing the Internet and wants to share a URL link with a colleague. Though he can open his Lotus Notes thick client and send the mail, it would be quicker and more convenient to simply send the link using his Lotus-iNotes URL in a browser.
- Likewise in software teams, when a team lead wants a quick glance at his team's progress, he could hit his Rational Team Concert's web URL rather than opening up the client and checking the details.
Different application for each system
If you don't want to make a desktop application work on the cloud or create an additional version of the desktop application, there are applications which are developed specifically to run on the cloud. These applications don't usually provide a desktop equivalent. But, since these applications are developed with the purpose of deploying them in the cloud, they more run efficiently on the cloud infrastructure. Some examples include:
- ZohoDocs offers a desktop office suite.
- LotusLive is set of cloud-based collaboration tools from IBM offering services for accessing email (LotusLive iNotes), for conducting web meetings (LotusLive Meetings), for sharing files and business networking (LotusLive Connections).
- Pixlr and picnik offer free photo editing.
- Several customer relationship management (CRM ) applications are available on the cloud, including SugarCRM.
This article has compared the features of desktop applications with those of applications that run in the cloud, and described the differences you may encounter when running your application in a cloud or a desktop environment. Each environment has its advantages and disadvantages, and your unique requirements will determine which is best for you.
- Check out some online tools for photo editing and document management:
- Learn about CRM applications in the cloud space.
- Check out Application Jukebox.
- In the developerWorks cloud developer resources, discover and share knowledge and experience of application and services developers building their projects for cloud deployment.
- The next steps: Find out how to access the IBM Cloud.
Get products and technologies
- Join the Desktop Virtualization and Open Source in Cloud group on developerWorks
- Join a cloud computing group on developerWorks.
- Read all the great cloud blogs on developerWorks.
- Join the developerWorks community, a professional network and unified set of community tools for connecting, sharing, and collaborating.
Dig deeper into Cloud computing on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Deploy public cloud instances in as few as 5 minutes. Try the SoftLayer public cloud instance for one month.