Research

Cloud Computing

In the past computing tasks such as word processing were not possible without the installation of application software on a user’s computer1). A user bought a license for each application from a software vendor and obtained the right to install the application on one computer system. With the development of LAN and more networking capabilities, the client-server model of computing was born, where server computers with enhanced capabilities and large storage devices could be used to host application services and data for a large workgroup. Typically, in client-server computing, a network-friendly client version of the application was required on client computers which utilized the client system’s memory and CPU for processing, even though resultant application data files (such as word processing documents) were stored centrally on the data servers. Multiple user licenses of an application were purchased for use by many users on a network.

Cloud computing differs from the classic client-server model by providing applications from a server that are executed and managed by a client’s web browser, with no installed client version of an application required. Centralization gives cloud service providers complete control over the versions of the browser-based applications provided to clients, which removes the need for version upgrades or license management on individual client computing devices. The term SaaS is sometimes used to describe application programs offered through cloud computing. A common shorthand for a provided cloud computing service (or even an aggregation of all existing cloud services) is The Cloud.

Any computer or web-friendly device connected to the Internet may access the same pool of computing power, applications, and files in a cloud-computing environment. Users may remotely store and access personal files such as music, pictures, videos, and bookmarks; play games; or do word processing on a remote server. Data is centrally stored, so the user does not need to carry a storage medium such as a DVD or thumb drive. Desktop applications that connect to internet-host email providers may be considered cloud applications, including web-based Gmail, Hotmail, or Yahoo! email services. Private companies may also make use of their own customized cloud email servers for their employees.

Cloud computing technologies are regarded by some analysts as a technological evolution, or may be seen as a marketing trap by others such as Richard Stallman.

Consumers now routinely use data-intensive applications driven by cloud technology that may have been previously unavailable due to cost and deployment complexity.[citation needed] In many companies, employees and company departments are bringing a flood of consumer technology into the workplace, which raises legal compliance and security concerns for the corporation which may be relieved by cloud computing.

Distributed Computing

The word distributed in terms such as distributed system, distributed programming, and distributed algorithm originally referred to computer networks where individual computers were physically distributed within some geographical area1). The terms are nowadays used in a much wider sense, even referring to autonomous processes that run on the same physical computer and interact with each other by message passing.

While there is no single definition of a distributed system, the following defining properties are commonly used:

  • There are several autonomous computational entities, each of which has its own local memory.

  • The entities communicate with each other by message passing.

In this article, the computational entities are called computers or nodes.

A distributed system may have a common goal, such as solving a large computational problem. Alternatively, each computer may have its own user with individual needs, and the purpose of the distributed system is to coordinate the use of shared resources or provide communication services to the users.

Other typical properties of distributed systems include the following:

  • The system has to tolerate failures in individual computers.
  • The structure of the system (network topology, network latency, number of computers) is not known in advance, the system may consist of different kinds of computers and network links, and the system may change during the execution of a distributed program.
  • Each computer has only a limited, incomplete view of the system. Each computer may know only one part of the input.