Applying Software Engineering Principles for Designing Cloud@Home
- ISBN: 9781424469871
- DOI: 10.1109/CCGRID.2010.76
Abstract
Cloud computing is the ``new hot'' topic in IT. It combines the maturity of Web technologies (networking, APIs, semantic Web 2.0, languages, protocols and standards such as WSDL, SOAP, REST, WS-BPEL, WS-CDL, IPSEC, etc.), the robustness of geographically distributed computing paradigm (emphNetwork, Internet and emphGrid computing) and self-management capabilities (emphAutonomic computing), with the capacity to manage quality of services by monitoring, metering, quantifying and billing computing resources and costs (emphUtility computing). Those have made possible and cost-effective for businesses, small and large, to completely host data- and application-centers virtually... in the Cloud. Our idea of Cloud proposes a new dimension of computing, in which everyone, from single users to communities and enterprises, can, on one hand, share resources and services in a transparent way and, on the other hand, have access to and use such resources and services adaptively to their requirements. Such an enhanced concept of Cloud, enriching the original one with Volunteer computing and interoperability challenges, has been proposed and synthesized in CloudHome. The complex infrastructure implementing CloudHome has to be supported by an adequate distributed middleware able to manage it.
Applying Software Engineering Principles for Designing Cloud@Home
V. D. Cunsolo, S. Distefano, A. Puliafito, M. Scarpa
Universita` di Messina, Dipartimento di Matematica
Contrada Papardo, S. Sperone, 98166 Messina, Italy
vdcunsolo{sdistefano, apuliafito, mscarpa}@unime.it
Abstract—Cloud computing is the “new hot” topic in IT. It
combines the maturity of Web technologies (networking, APIs,
semantic Web 2.0, languages, protocols and standards such as
WSDL, SOAP, REST, WS-BPEL, WS-CDL, IPSEC, etc.), the
robustness of geographically distributed computing paradigm
(Network, Internet and Grid computing) and self-management
capabilities (Autonomic computing), with the capacity to man-
age quality of services by monitoring, metering, quantifying
and billing computing resources and costs (Utility computing).
Those have made possible and cost-effective for businesses,
small and large, to completely host data- and application-
centers virtually... in the Cloud.
Our idea of Cloud proposes a new dimension of computing,
in which everyone, from single users to communities and
enterprises, can, on one hand, share resources and services in a
transparent way and, on the other hand, have access to and use
such resources and services adaptively to their requirements.
Such an enhanced concept of Cloud, enriching the original one
with Volunteer computing and interoperability challenges, has
been proposed and synthesized in Cloud@Home.
The complex infrastructure implementing Cloud@Home has
to be supported by an adequate distributed middleware able
to manage it. In order to develop such a complex distributed
software, in this paper we apply software engineering principles
such as rigor, separation of concerns and modularity. Our
idea is, starting from a software engineering approach, to
identify and separate concerns and tasks, and then to provide
both the software middleware architecture and the hardware
infrastructure following the hw/sw co-design technique widely
used in embedded systems. In this way we want to primarily
identify and specify the Cloud@Home middleware architecture
and its deployment into a feasible infrastructure; secondly,
we want to propose the development process we follow, based
on hardware/software co-design, in distributed computing con-
texts, demonstrating its effectiveness through Cloud@Home.
Keywords: Cloud computing; cross-platform interop-
erability; Volunteer computing; Separation of Concerns,
HW/SW co-design.
I. INTRODUCTION AND MOTIVATIONS
Cloud computing is a new computing paradigm that
promises to realize most of people desires. Through Cloud
computing small and medium enterprises can avoid invest-
ment on building their own data centers, and big enterprises
can reduce the operative costs of their own data centers.
Private users and common people mainly experience the
benefits of Cloud in networking: storing data, emails, photos,
etc., exploiting web services, and so on. Cloud computing
seems to be the panacea of information technology (IT),
since services are always available, unbound and delocal-
ized: they are somewhere in the Cloud and everyone can
use them.
The development and the success of Cloud computing is
due to the maturity reached by both hardware and software,
in particular referring to the virtualization [28], [4] and the
Web (Web 2.0 [25], WSDL [7], REST [14], SOAP [29])
technologies. It is conceived by the service-centric perspec-
tive that is quickly and widely spreading in the IT in terms
of service oriented science [15], service computing [31] and
IT as a service (ITAAS) [16]. From this perspective, all
capabilities and resources of a Cloud (usually geographically
distributed) are provided to users as a service, to be accessed
through the Internet without any specific knowledge of,
expertise with, or control over the underlying technology
infrastructure that supports them.
Cloud computing offers a user-centric interface that acts
as a unique, user friendly, point of access for users’ needs
and requirements. Moreover, it provides on-demand service
provision, QoS guaranteed offer, and autonomous system for
managing hardware, software and data transparently to users
[30].
A great interest on Cloud computing has been mani-
fested from both academic and private research centers, and
numerous projects from industry and academia have been
proposed. In commercial contexts, among the others we
highlight: Amazon Elastic Compute Cloud [1], IBM’s Blue
Cloud [18], Sun Microsystems Network.com [24], Microsoft
Azure Services Platform [8], Google App Engine [19], Dell
Cloud computing solutions [10]. There are also several
scientific activities, such as: Reservoir [22], Nimbus-Stratus-
Wispy-Kupa [26], Eucalyptus [21] and OpenNEbula [12].
All of them support and provide an on-demand computing
paradigm, in the sense that a user submits his/her requests
to the Cloud that remotely, in a distributed fashion, pro-
cesses them and gives back the results. This client-server
model well fits aims and scopes of commercial Clouds: the
business. But, on the other hand, it represents a restriction
for scientific Clouds, that have a view closer to Volunteer
computing, i.e. of using computers volunteered by their
owners as a source of computing power and storage to
provide distributed scientific computing [2]. It is behind
the “@home” philosophy of sharing network connected
resources for supporting distributed scientific computing.
2010 10th IEEE/ACM International Conference on Cluster, Cloud and Grid Computing
978-0-7695-4039-9/10 $26.00 © 2010 IEEE
DOI 10.1109/CCGRID.2010.76
618
Sign up today - FREE
Mendeley saves you time finding and organizing research. Learn more
- All your research in one place
- Add and import papers easily
- Access it anywhere, anytime


