Upload
nouf-al-shenaifi
View
62
Download
3
Embed Size (px)
Citation preview
Cloud Computing: Services, Issues and Impacts. Sara Al-Sudairy
1, Nouf Al-Shenaifi
2
1,2
Department of Computer Science, King Saud University, Riyadh, Saudi Arabia [email protected]
Abstract— Cloud computing brings about a paradigm shift in the
IT industry. The related applications and resources were
removed from portable desktop or hardware-software into large
cloud computing centres, which is delivered as software as a
service (SaaS), platform as a service (PaaS) and Infrastructure as
a service (IaaS), to provide all kinds of services on-demand. This
paper provides an insight to cloud computing, its advantages and
discusses various issues that organizations face while
implementing cloud computing. Further, analyses of how cloud
computing is going to impact the software engineering process to
develop quality software is presents.
Keywords— Cloud, Cloud computing, Software Engineering.
I. INTRODUCTION
A new paradigm of computing has started to evolve in
recent times called cloud computing. In this environment, the
applications, data and software are no longer exist on the
client side; instead they are treated as abstract services and
reside in a cloud. Cloud, which is the next revolutionary step
in distributed computing, will change the world in such a way
that people can get any service on the cloud where cloud is the
limit. Cloud keeps up the earlier promise of the Internet that
you could dynamically move out of another environment [5].
Additionally, Cloud computing is the virtualization of
computer programs through Internet connection rather than
installing applications on every office computer.
Virtualization is efficient because expensive physical devices
that were dedicated to specific applications can be shared
across a number of functions without modifying the
applications. The rest of the paper is organized as follows:
Section 2 presents a high-level definition of cloud computing
followed by cloud computing services which categorized in
three models: Infrastructure as a Service (IaaS), platform as a
service (PaaS) and Infrastructure as a service (IaaS). Section 3
discusses the impact of cloud computing on Software
Engineering. Section 4 lists some of cloud computing
advantages. Issues and challenges related to cloud computing
are addressed in section 5. Section 6 presents current cloud
computing applications. Finally, we conclude the paper in
Section 7.
II. FRAMEWORK OF CLOUD COMPUTING
Cloud is the main concept in cloud computing, it is group
of many interconnected computers and network servers, the
large network that providing resources called "cloud". The
architecture of the cloud typically involves component
communications with each other over software application
that allow the customer to access cloud application. In
traditional development environment the organization needs a
large number of servers, equipment and storage devices, also
requires maintenance and skilled technical team. However,
now with cloud computing data, files and applications are
hosted on cloud and can be accessible via the web. New
advances in processors, virtualization technology, disk storage,
broadband internet access and fast, inexpensive servers have
all combined to make cloud computing a compelling paradigm.
Cloud computing allows customers and companies to pay for
and use the software and storage that they need, when they
need and where they need them [3]. Moreover, cloud
computing is environmental friendly because of the easy to
build web based applications that run on the cloud; and it
gives the ability to meet changing in user demands.
III. CLOUD SERVICE MODELS
A. Based on Type of Capability:
Cloud basically offers three types of services: (1) IAAS
(infrastructure as a service), (2) PAAS (platform as a service)
and (3) SAAS (software as a service). As shown in figure 1.
1) Infrastructure as a Service (Iaas): Infrastructure as a
Service is virtual servers with number of unique IP addresses
and block of storages on user demand. The customer can pay
the amount of service he/she needs through application
program interface. Service includes provision of hardware
and software for processing, data storage, networks and any
required infrastructure for deployment of operating systems
and applications.
2) Platform as a Service (Paas): Platform as a Service is
services includes programming languages, tools and
application delivery platform hosted by the service provider to
support development, deployment, testing, maintaining and
delivery of end-user applications. Developers can use the
provider application interface to create any application. In
Platform as a Service there are four type of application which
is: social application platforms, row compute platforms, web
application platform and business application platforms.
3) Software as a Service (Saas): Software as a Service is
the service based on the concept of renting software from a
service provider rather than buying it yourself, It is known as
software on demand [3]. Hosted software applications are
provided and managed by the service provider for the end-
user and the software interacts with user through a user
interface (web browser). The application deliver it as a service
and accessible from various customer's devices and this
platform provides flexibility in application's location. The
platform enables scenarios where some applications are
delivered as a service while others run on client and server
devices. Yahoo mail and Google docs are examples of SaaS
vendors.
Figure.1 Cloud Computing Service Models .
B. Based on Access
There are basically three types of cloud: (1) public, (2)
private and (3) hybrid cloud.
1) Public Cloud (External Cloud): The organization will
rent the resources from an off-site (third -party) cloud
provider and these resources will be shared between
multiple tenants. In addition, resources are dynamically
provisioned on a fine-grained, self-service basis over
the Internet, via web applications/web services. Public
cloud is easy and inexpensive set-up because
application and hardware are covered by provider.
However, public clouds are still not mature because of
the various unaddressed security issues [5].
2) Private Cloud (Internal Cloud): The organization owns
all resources on-site. It may be managed by the
organization or a third party, and may exist on premise
or off premise; but only members of the client
organization can provision, configure and use the
resources of that private cloud [3]. The private cloud
should offers necessary hardware and software
provisions to the customers per their request.
3) Hybrid Cloud: The hybrid cloud is in the middle
between private cloud and public cloud which means
the organization owns some resources (external
resources) and rent some other resources. Hybrid cloud
will dominate the market in the future than public
cloud because most of the enterprises have made huge
investments in the infrastructure required providing
resources in-house and they prefer to keep the data in
their control and the other services can be given to the
external providers [3].
IV. IMPACT OF CLOUD COMPUTING ON SOFTWARE
ENGINEERING
Software engineering is an engineering discipline that is
concerned with all aspects of software production [1]. The
success of software project is measured by that the
developed software should deliver the required
functionality within time and budget and in accordance to
Quality attributes. Cloud computing will transform the
software industry and offers a better economical way of
software development as the customers will not have to
spend capital of owning or renting the Hardware/Software
rather they can use the resources and expense is cut down
to usage only. Furthermore, cloud computing means more
for development of the software as developers will be
coding, testing, staging and working with services and will
have to design for running in parallel, not just in sequential.
More promises of cloud computing regarding cost savings
as the costs of operations and delivery is reduced.
However, in the rapidly changing computing
environment with web services and cloud platform,
Software development is going to be very challenging.
Software development process will involve heterogeneous
platforms, distributed web services and multiple
enterprises geographically [2]. Software process model
activities require interaction with cloud providers. By
Comparing software process model activities of traditional
software development and software development with
cloud platform we found that In the requirements phase,
traditional software development includes customers, users
and software engineers while in cloud platform it has to
include the cloud providers as well as they will be
supplying the computing infrastructure to offer customers
storage, software services and maintain them too. Planning
and design phases of software development with cloud
computing also have to include the cloud providers.
Coding and testing can be done on the cloud platform
which gives developers a huge benefit as everybody will
have easy access to the software being built, which also
will reduce the cost and time for testing and validation.
Maintenance phase also should include the cloud providers
as well as software engineers. Maintenance of Software
product is now the key responsibility of cloud providers.
Because of the involvement of the cloud provider the
customer has to sign contract with them as well so that the
“Software Engineering code of ethics” are not violated by
the cloud provider.
Radha et al in [2] propose an extended version of
Extreme Programming (XP), an agile process model for
cloud computing platform and named it Extreme Cloud
Programming. This model is proposed to leverage the
benefits of cloud computing and mitigate the challenges of
Software development with cloud platform. The suggested
model "Extreme Cloud Programming" includes all the
phases of software development life cycle (planning,
design, construction, testing and deployment); these
phases need interaction with the representatives from
cloud provider. In requirement phase, the activities of
cloud provider are mainly about resource accounting while
the software developers will focus on requirements
elicitation in this phase. During design phase, software
developer roles include Interface design, data types, cost
estimation, schedule estimation; Software/Hardware
architecture and component reuse are responsibility of
cloud provider. In construction phase if application or web
services are used, coding integration of web services is
responsibility of software developers and the
implementation details will be mitigated with the
mediation of the cloud provider. Testing phase is done in
cooperation between software developers and cloud
providers. On the other hand deployment phase is only
performed by cloud provider.
V. BENEFITS OF CLOUD COMPUTING
The conversion of development environment to cloud
computing gives an organization number of positive effects,
like reducing cost and accelerating the development process
through automatic construction of development environments
[4]. Some of cloud computing advantages are listed below:
A. Simplicity: Obviously, it is simple and easy to use all
the services without having to worry about resource
management and infrastructure set up and management
[3].
B. Cost: costs of setting up infrastructure such as (servers,
database administrators, people resources for managing
critical systems including backup and recovery) and
costs of maintenance or upgrade can be avoided using
the cloud. Instead, organizations pay for services based
on usage; this pay-per-usage model allows an
organization to only pay for the resources they need
with basically no investment in the physical resources
available in the cloud. Moreover, it gives organizations
the chance to change old technology to new technology
without worrying about the cost.
C. Scalability: Users have access to a large amount of
resources that scale based on user demand. Assume
that normal loading requires 5 data servers to serve a
group of users, at the end of each month, 20 servers'
worth of computing is needed; using a traditional data
center, 20 servers are purchased to meet peak loading,
and they run at about 20% load most of the month.
Using the cloud to run either all services or just
additional services at peaks may provide economic
benefits. Moreover, it will reduce the delay time
needed to offer a new service.
D. Availability: The cloud providers provide the latest
software, hardware, bandwidth, large storage space,
high speed access, infrastructure and platform.
E. Collaboration: Since everything is on the cloud, Users
are starting to see the cloud as a way to work
simultaneously on common data and information.
F. Mobility: Users have the ability to access data and
applications from around the globe.
G. Efficiency: Developers have to perform wide range of
tasks to construct a development environment, from
setting up the servers to installing the operating system
and applying latest patches and updates. These tasks
take an effort and time to complete. However, on the
cloud, the work of constructing the development
environment can now be done in less effort. Moreover,
as developers are no longer have to perform systems
backups or switching, they can focus on the actual
development work.
H. Immediacy: cloud computing helps to save time and
reduce delays in time because it provides application in
relatively less time rather than the old approach.
I. Resiliency: In cloud computing platform, cloud
provider fully ensures the availability of the services
even in case of natural disasters.
J. Risk Reduction: Companies and individuals may use
the cloud to test ideas and concepts before making
major investments in technology.
VI. CLOUD COMPUTING CHALLENGES
Cloud computing faces many of the same challenges as
other information and network technologies, some of the
issues related to cloud computing are presented below:
A. Security: The major challenge in cloud computing is the
protection of user data from external attacker or from
cloud provider who access unencrypted data. Security
worries are undoubtedly slowing the adoption of the cloud
and prevent enterprises from taking advantage of the cloud
computing technology. "A recent survey commissioned by
Microsoft has found that 75 percent of senior business
leaders consider safety, security and privacy as the top
potential risks of cloud computing. More than 90 percent
of the general population and business leaders would have
concerns about the security and privacy of their own data
in a cloud computing environment, according to the survey
by Penn Schoen & Berland" [5]. The key concern is data
privacy where users do not have control on where their
data is being stored. However, most providers will provide
audit rights and even a documented security audit from a
third party, but not a 100% security guarantee. While
many cloud providers store data in specific locations,
every site has physical and electronic vulnerabilities.
Sensitive information such as credit card numbers, social
security numbers and financial information may be too
valuable to be stored on the cloud. Most of the cloud
service providers take enough measures to secure the data
by applying data encryption mechanisms, user
authentication and authorization practices; on the other
hand, users are always worried about the vulnerability of
external data to hackers and disgruntled employees. The
cloud service providers should ensure that encryption
policies are designed and tested by experts.
B. Standards: universal set of standards have not yet been
defined resulting in a significant ris for consu ers to
ove their entire operations . hence, standards governing
regulations are needed which ensure uniformity in how the
applications are accessed, stored and modified [3].
C. Legality and Regularity Compliance: Issues arise
regarding the ownership of data and whether the client
might be ready to forgo the rights of their data [3]. Cloud
Computing is not currently subject to specific regulation.
Despite the lack of specific regulation, in certain
jurisdictions the provision of cloud computing services
will require the provider to obtain a license.
D. Performance: All access to the cloud is done via the
internet, introducing latency into every communication
between the user and the environment.
E. Financial: The cost of cloud computing is larger than in-
house data centres in case of large organization. The best
using of cloud computing is in small and medium
organization.
F. Switch over to new technologies: Switching to cloud
computing (new technology) would be best when the
applications and data are independent. In small to medium
organizations, when a low level of protection works well
and a strong architecture of the organization conditions are
favourable for the organization to switch to newer
technologies. However, organizations face many
difficulties to move to new technology.
G. Technical Hardware and Software Expertise: There are
needs for technical experts to develop cloud computing
applications in order to suit the requirements and the
provision of services and equipment necessary to achieve
the goal of cloud computing.
H. Operational and Organizational: A strategy for the
management of cloud services, including how the
organization will deal with security, management and
transactions need to be created. The organization could
face many internal issues like distributed business levels
and complexity of applications.
VII. CURRENT CLOUD COMPUTING APPLICATIONS
There are many service providers like 3Tera, Net suite,
Amazon Web services, IBM, Microsoft, Google and
Mosso in the market offering cloud services. There is no
specific standard where each cloud service provider
defines his product in his own way. Furthermore, at end-
user level, there are online photo and document sharing
applications such as flickr, Google Doc ,Google Calendar
and picas; Also, online business software such as
Salesforce.com.
VIII. CONCLUSION:
Cloud computing is currently gaining popularity as an
inexpensive way of providing storage and software. Cloud
computing is a paradigm shift over traditional way of
developing and deploying software application. This will
make software engineering more difficult as they have to
interact with a third party called the “cloud provider”. This
paper discussed cloud computing as an emerging paradigm.
We have listed advantages of cloud computing and
highlighted the challenges of cloud computing. Also we have
discussed the impact of software engineering on cloud
computing.
REFERENCES
[1] Ian Sommerville, Software Engineering, 7th Edition, Addison-
Wesley, 2004.
[2] R.Guha and D.Al-Dabass, "Impact of Web 2.0 and Cloud
Computing Platform on Software Engineering," in international
Symposium on Electronic System Design, 2010.
[3] U.Lanjewar and L.Rewatkar, "Implementation of Cloud
Computing on Web Application," in International Journal of
Computer Applications, vol.2, No.8, June 2010.
[4] L.Mei, Z.Zhang, and W.Chan, "More Tales of Clouds: Software
Engineering Research Issues from the Cloud Application
Perspective," in 33rd Annual IEEE International Computer Software
and Applications Conference, 2009.
[5] R.Suchithra, R.Selvarani and D.Nagamalai, " Elements of Cloud
Computing: A Perspective on Service Oriented Enterprises (SOEs)".
[6] N.Kalyankar and S.Mirashe, "Cloud Computing," in Journal of
computing, vol.2, No.3, March 2010 .
[7] S.Qamar, N.Lal and M.Singh, "Internet Ware Cloud
Computing :Challenges," in (IJCSIS) International Journal of
Computer Science and Information Security, Vol. 7, No. 3, March
2010.
[8] A.Pandey, A.Tandon, B.Maurya and U.Kushwaha, "Cloud
Computing: Exploring the scope," in Indian Institute of Information
Technology- Allahabad.
[9] A.Qamar and G.Briscoe, "Community Cloud Computing,"
October 2009.