Cloud computing: use cases & various applications

As Cloud Computing has become more and more famous and popular, various Cloud Computing architectures, models and infrastructures have been defined, given their specific circumstances for the applications. Currently, many Cloud definitions, applications and samples can be helpful as a reference for using a Cloud Computing service. As Cloud Computing technology is being used to minimize the cost of computing resources, many enterprises gained interest of migrating their old system to the Cloud Computing system. This further illustrates the importance the usage of Cloud Computing, therefore, this paper investigates some distributed computing model especially cloud computing to clarify which definition, usage, applications and use-cases are more useful. Further, this article attempts to introduce various models of cloud computing, services, use-cases and applications. Finally, we made a comparison between various companies that are providing Cloud Computing facilities.


Introduction
In this world, it is very necessary to make facility for people that provide possibility for them to easily contact with together quickly or send messages or different media types of data to each other simply through Internet or World Wide Web (WWW) facilities [1]. Currently electronic services and Internet have made the entire world as a big village in the name of Global Village (GV). Nowadays each individual user, regardless to political or geographical boundaries accessing E-Services. Therefore, with the help of communication facilities, which are, provides by Internet or E-Services between people, they would be able to solve some unsolved or difficult problems from their life. Further, there are several global support systems to help each individual actor in this world to overcome the problems and fulfil duties or roles in their personal or social life. Moreover, several software-developing companies, which have located in different countries, need to consider the situations and requirements of their users for creating the new E-services. These companies attempt to share their knowledge, schedule their various activities or manage strategies for building global systems instead of local systems. Therefore, they have a lot of problems and challenges for developing novel software. Cloud computing is proposed for removing some of these problems. The use of Cloud computing is increased after developing Web 2.0. There are several definitions for Cloud Computing [2]- [5]. Based on these research efforts, Cloud computing is identified as a model which is creating possibilities for on-demand access to shared data in configurable computing memories or resources by the help of Networks or Internet [2]. Another definition of Cloud computing is, saving data or applications of organizations through Internet in distance servers [3]. Further, Cloud computing is used for sharing various types of data including images, video, music etc., in social network websites (such as myspace, youtube etc.,) [4]. Therefore, Cloud computing is one the hot research areas nowadays and it is shortly defined as a development of parallel, distributed and grid computing [5]. People commonly require being able to manage large facilities and define methods for discovering the consumers and their requests or the resources which are used by these consumers parallel. Therefore, it is necessary to have special facilities for implementing or handling these functionalities.
Berardi [6] defined Cloud Computing as a large scale distributed computing paradigm that is Fig.1 out from economic scale. This author, has been described Cloud computing as a pool of storage, computing power, dynamically scalable or visualized services which are delivered to consumers or external customers by their demand. The remaining of this article organized as Section 2 introduces the main concepts of network computing such as distributed, grid and cloud computing. Section 3 describes the use cases of cloud computing, Section 4 presents various models of cloud computing. Section 5 includes some applications of cloud computing and finally Section 6 summarizes the paper.

Cloud computing
Cloud computing is a new technique, which is development of grid, distributed and parallel computing [7]. The relationship between cloud computing and other domains is shown in Fig.1. It has several components such as clients, datacentre and distributed servers. Further, it provides different types of public and cloud computing models such as Storage,as a Service (STaaS), Data as a Service (DaaS), Desktop as a Service (DEeeS), Security as a Service (SECaaS), API as a Service (APIaaS), Test Environment as a Service (TEaaS), Platform as a Service (PaaS), Infrastructure as a Service (IaaS), Software as a Service (SaaS) and etc. However, three models (PaaS, SaaS and IaaS) are more commonly used models within these models; therefore, we discuss more about these three models [8]: SaaS (Software as a Service): in this model, all requirements including software, hardware and network facilities are provided for users. PaaS (Platform as a Service): in this model, only operating system, hardware and network facilities are provided for users and software is users should be provide the software and install it themselves. IaaS (Interface as a Service): in this model, only hardware and network facilities are provided for users and they should be provide software, operating system and other application themselves.

Grid computing
Cloud computing is such as a backbone of grid computing. Further, it supports infrastructure of grid computing. Economy usages are the main applications of grid computing. Grid computing delivers various resources or services to consumers. Therefore, it has various usages and utilities for business purposes or uses by many companies. Cluster Computing mostly has non-service applications, whereas grid computing has service-oriented applications. It has less scale in compare with cluster and cloud computing [9]. Resource sharing in dynamic and distributed companies is the main aim of grid computing. It creates a distributed computing infrastructure that spans across multiple Virtual Organizations (VO). Each VO can contain of physically distributed organizations or logically related projects or co-works in various groups all-around of the world. Sharing resources between members of this federated group of users in dynamic distributed environments, is the main goal of this infrastructure or paradigm [10]. For providing this goal, we need to define standard network protocols and provide middleware to mediate to share or access to various heterogeneous resources. Foster [11] defined three points for identifying Grids. These three points are:  Resources should not require for centralized control.  Grids must be use standard and general interfaces or protocols.  Grids hand over non-trivial qualities of services.

Distributed computing
A network of heterogeneous or autonomous computers, which are having communication for achieving various goals. All computers in distributed systems are independent and they do not share resources such as processors or memories.
In the other words, computers in distributed systems communicate with together through passing messages. Through these messages, each computer can transfer files to other system or request for special behaviours or information from in other computers [12]. Each computer in distributed systems has special responsibility. This responsibility is related to the goal of distributed systems and configuration of software or hardware of each computer. There are two prominent ways for organizing computers in distributed systems, which are [12], [13].

Client/Server Systems:
In this architecture, one central computer named as Server provides services to other computers that are named as clients. It means, Clients send a request for asking data from servers for doing their tasks and servers accepts their request and send data to them. This model is suitable for service-oriented situations.

Peer-to-Peer Systems:
The computers in this model of systems are having similar responsibly or roles. They can send or receive data to/from each other. In order to make sure that messages or data deliver to the correct destination or identifying the location of other computers in one system, one structure is required. Whenever, the length of data is so long, it can be divided into some small parts and each part save in various computers in peer-to-peer systems. It is possible to have a component for checking safety of communications in peer-to-peer communication. Therefore, these systems will not be pure peer-to-peer network. One example for these systems is, Skype. Since people communicate with each other through Skype and send or receive data all requirements for creating communication are located in both user's computers. It is peer to peer system but since there are various computers and components in Skype service provider for checking the security of communications, Further, a scaffolding network is responsible for handling log in and log out of the users so it will not be a pure peer-to-peer network [14].

Cloud computing services
Cloud computing includes distributed computing over Internet (or any other networks). It allows for sharing all types of data or resources for achieving economic usages over the Internet [15]. It can reduce environmental damage by using less power and air conditions etc. In the other words, it provides facilities for running an application or program in the same time on many computer, which are connected to each other all around the world. One or more computing hardware are referred as servers that are connected through Internet, Intranet or any other networks (LAN, WAN etc.). Any authorized user can use this server for various purposes such as running an application, sharing photo etc.
The main models of cloud computing service are known as (software/ platform/ infrastructure) as a service, which may be offered in a hybrid, private or public model. The other models of cloud computing is network-based services which are called virtual hardware simulated (this hardware are not exist really) and these services provided by one or more real machines which are located all-around of the world.

Cloud computing use cases
A composition of computers and hardware components that are interconnected by Internet or Intranet and having capability for sharing information and resources with each other is called a computer network. Networks are classified according to different characteristics, such as, topology, the protocol used, formats for transferring or exchanging data etc. Cloud computing has a cloud-shaped symbol which is an abstraction for the complex infrastructure, which is, contains in system diagrams. It uses computing resources, software and hardware that are delivered as a service over the Internet. Users through the cloud computing can be share their data with other people, access data from other users' remote computers etc. Currently more than 70% of companies use multi-cloud strategy.
Cloud computing has four models for deployment that are private, public, hybrid and community clouds. For creating hybrid clouds model, composing of multiple private and public with concerning special key factors is necessary. This model is useful in enterprise and business environments. Some famous hosts for public cloud model are Google Compute Engine (GCE), Amazon Web Services (AWS) etc. For some of the companies, the security is more important. They have various common requirements with other companies, so they look an infrastructure to share their data with other organizations. Since the number of organizations or users which are sharing data or having communication in this case is less than public model, therefore, this model is expensive than public model but this model offers higher level of security for the organizations.
In case of private cloud model, services are providing for only one single company or institute with special purpose or requirement.
In the case of hybrid cloud model, at least one public and one private cloud are sharing their data or resources [16]. Therefore, in this case, there is high number of use-cases and file storage, file sharing and synchronizing, website hosting, big data, financial services etc.
The business or enterprise [17] is one of the most applications of cloud use cases. In this case, various use cases are attended such as enterprise to cloud, cloud to end user, end user to cloud and enterprise to cloud to enterprise etc. In the following sub-sections, we attempt to discuss more about some of these use cases.

Private cloud use cases
Private clouds [18] are using by some organizations since they requires better options of software, hardware, cost network latency etc. Some virtual firewalls or virtual security appliance are instances of private use cases of cloud computing.

Hybrid Cloud Use Cases
In some conditions, organizations require combination of benefits and advantages of public cloud computing and privacy advantage of private cloud computing models both. Therefore, in this situations, hybrid cloud computing is the best option for them. In some case, hybrid cloud use case is the best choice such as regulative requirements and usages, IT vending machine, untested huge amounts of workloads, cloud bursting, high Disaster recovery etc. Complex system simulations in various areas of physics, biology, chemistry etc., are provided by computational grid [7]. For example, for requirements such as functional requirements (low case and high performance)and non-functional requirements (easy management and easy use), technical requirements , the following use case diagram can be draw up [see Fig.2 ]. The other example, is belongs to medical-image storage and processing framework which is using grid and computational grid data and has functional requirements (storing medical data such as image and non-image data) and non-functional requirements (such as registering or logging) and technical requirements. The use cases that are proposed for this case are shown in the following Fig.3.

Cluster computing use cases
For storing bytes of accessible data using clusters, computational clusters are useful. The following Fig.4 is used for saving permanent Type of static data for long-time. These data can be updated, modified or retrieved. In this case, for providing processing power, various solutions are proposed such as creating clusters. However, the main problem of these solutions is related to storage capacity of organization, characteristics of data, storage or computing resources and their capabilities. Some of these problems such as storage capacity can be solve By applying grid approach. The following Fig.5 presents use cases of this case.

Various models of cloud computing
This section presents from different aspects of cloud computing such as security model, business model, programming model, visualization etc.

Business model
In cloud computing business model unlike traditional business model, which is required to user pay money and purchase a software permanently and use it every time s/he needs, each user pays money to the service provider on a consumption basis. Such as electrical companies that are, charging customer based on their basic utilities. Currently most of the famous cloud computing service providers such as Amazon or Google providing a centralized cloud including compute cloud and data cloud.
Jericho Forum (JF) [20] proposed secure collaboration environments between business users of cloud computing services. Chang [21] made a categorization for cloud computing business models. This author made a classification for business models and 8 classes has been proposed for business models of cloud computing. These eight types of business models are Entertainment (EN) and Social networks (SN) usages, service providers/ orientations, private house clouds, Enterprise Clouds, one-stop services and resources, governments funding, supports and services contracts and Venture and capitals.

Computing model
Cloud computing provides facilities for users that allow they share data synchronously with together. Therefore, it is latency sensitive operations can be operating smoothly on clouds. In the other words, one of the main challenges is regarding to delivering high level of QoS to the end users. In case of more number of users that share data or communicate through clouds is increase; this problem is more important and serious.

Data model
With increasing data-sensitive applications, data management including querying, caching, movements, partitioning, replication etc.) Will become more and more important for cloud and client computing. The following Fig.6 shows data centralization in data and client computing. Client computing is very important even with several critical issues such as:  Security issues: For some security issues and reaming challenges, users might be not willing to send their important or sensitive data or information for processing or storage in clouds.  Slow communication or data transfer: Sometimes the data or information transfer speed is low in clouds or Internet. Therefore, some of the users have problem with this matter.
With the help of multi-core or parallel processing technologies, there are possibilities to create supercomputer with several hardware and cores facilities. This powerful supercomputers are useful whenever users willing to run locally, complex functionalities such as multimedia playback or visualization

Combining compute and data management model
In case of critical combination of data resource management and computing, improving performance of applications by minimizing data movement using data locality is occurred. In this situation, for solving computational and storage problems, it is applicable to schedule computational jobs and tasks close to the available data and Fig. out the costs of moving works instead of moving the data. Without providing localization facilities, for handling data-sensitive and important applications, clouds will face major challenges and serious problems. In some of the critical issues some terms such as monitoring, visualization and provenance are suggested. Fig. 7: Grouping Business Process [21] Business processes are shown in Fig.7. It is evident from Fig. 7 that, business requires communication with each other, balancing the requirements, and representing their requirements technically. In this Fig., businesses are joined each other locally or regionally. This localization decreases the cost of transition of data or processes in compare with global processing of data.

Cloud computing applications
There are several applications for cloud computing including educational, industrial, business etc. This section attempts to cover some of these applications with introducing big companies that are using these applications.

Cloud computing for web applications
Cloud computing is compelling paradigm since it provides inexpensive storage, server, disk spaces etc. for all the users through the network and mainly Internet or intranet [25]. The use of Cloud computing has several advantages for web users such as simplicity (in resource management), reliability (for network and data access), Flexibility, collaboration (users can collaborate in various projects or teams).

Business applications
Nowadays, the global market for enterprise cloud-based services has been grown [22], [23]. Further, Business process resources are available as a service in Cloud. These resources provide services that are listed as a standard set of common business process or utilities [25]. Cloud computing provides high quality and reliable services at reasonable or flexible prices. Further, it is useful in small business or companies for overcoming to competitive market situations. In the other words, Companies can focus for producing good quality software or business applications to increase their business value, productivity [24] or improving their supply chain management [25]. Some of the companies for proving several web-based services for users use SaaS, IaaS and PaaS. For example [26]:

Information-communications ecosystem
In cloud, computing and global village concept [1] information and communication systems have three main core categories: Information or contents that will be transfer or exchange. Communication or connection mechanism that is currently networks specially Internet. The services that are provided through this infrastructure. The main services, which are provided by, cloud computing are delivery of contents, data or information processing and exchanging data or knowledge. In this regard, complexity and functionality of ecosystems or business communities are depend on their structural or functional characteristics. Since the development, process of information and communication systems has been started with developing distributed data processing systems and it is related to grid and cloud computing infrastructures, therefore, it is necessary to create information-communication ecosystems based on information processing systems. Ecosystem is a digital environment which has digital units, software components, data and information, services, models for processing the data or information and network with several nodes that can be added or removed for allowing users, PCs to interact with together and exchange or share favourite data [6]. Various ecosystem models are presented to introduce new architecture for data processing management, recognizing grid or cloud semantic architecture from distributed processing models. The relationships between users in cloud computing environments are shown in Fig.8 It is evident from the Fig. that, cloud computing environment includes information /databases and information processing tools. This environment gives facility for users to pick up any item from anywhere in any time from this environment.

Conclusion
Nowadays people are living by the network communication systems, therefore entire of this world can be model as a global village which in this village people can communicate with their relatives, friends, colleagues anytime and from anywhere for sending data, exchange knowledge or etc. Cloud computing offers approaches and services which they can help us for creating automated systems and services. These services can be help for improving or optimizing supply chain management in business environments or solving several problems in human life. This paper briefly introduced cloud computing, its use case and some of its important applications or services, which are used by various big, companies such as Google or amazon for providing several services for the people in all-around of the world.