In this section, some of the characteristics and advantages of crowdcloud are presented. In the same fashion, some challenges that the implementation of crowdcloud can introduce are discussed and possible solutions to avoid or mitigate them are presented. It should be noted that crowdcloud, as a novel concept, will need more theoretical research to be conducted before any implementation attempts are made in order to guarantee a quality service which addresses all benefits and possible challenges accordingly.
5.3.1 Crowdcloud characteristics and benefits
Crowdcloud brings about a set of features and advantages that can be exploited to the benefit of the crowd, as well as organisations, and which can differentiate crowdcloud from other cloud services already in existence and give it a competitive advantage. These features include, but are not limited to, the following features.
Decentralised resource management resource management, as a crucial factor in cloud computing [
66], is usually performed by organisations in ordinary cloud services and in cloudsourcing, and is therefore conducted in a centralised way, i.e., they are centrally managed by one organisation. In volunteer cloud computing the resources are distributed inherently, but their management is still usually centralised by the service clients, i.e., the service client decides when and how to use the resources.
Crowdcloud, on the other hand, is completely decentralised in its resource management, meaning that each cloud service provider (i.e., an individual or an organisation) in the crowdcloud environment is responsible for managing the cloud resources they have provided, and there is no central authority to manage all the provided resources on a crowdcloud platform. The cloud management module on the crowdcloud platform is not a central entity either, but a distributed one where every crowd member will manage their own cloud resources through their own local copy, while interacting with other crowdcloud platforms over the network for coordination and interaction purposes.
Bidirectional service exchange in ordinary cloud service providers, cloudsourcing and volunteer cloud computing, organisations either provide services (e.g., Google Drive provides storage space for its clients) or they request services (e.g., SETI@home requests CPU power to analyse radio telescope data). This means that service provision in these cloud environments in unidirectional.
Crowdcloud, similar to social cloud, provides the opportunity for the ordinary crowd to both provide services and request them, thus providing a bidirectional service exchange. For example, a crowd member may provide a storage space for another crowd member while requesting a specific software program from the same or different member. The key difference, however, between social cloud and crowdcloud is that crowdcloud is not restricted to individuals, and organisations can also play the role of single entities in providing and requesting cloud services.
Democratised service provision when cloud service providers are corporations and organisations (for-profit or non-profit), they are fundamentally the ones who set the trends, determine the prices, obligate terms of services, etc. This means that the crowd will have no say and no control over these domains and have to abide by the rules set for them.
On crowdcloud, however, and similar to social cloud, everything is determined by the people. It is a free market where it is people who decide, possibly in a democratic way, which services to provide and how these services should be priced, how quality of service should be ensured, etc. Furthermore, it is possible for the crowd members to bargain over prices, terms and conditions, etc. This means that, for example, you may even find free virtual desktops or free on-demand software services for your needs. Here, the difference between crowdcloud and social cloud is that social cloud is based on a social network and relations amongst people, which limits the provision of services to a pre-defined list of friends, or friends of friends, etc. In crowdcloud, however, resource requests can originate from anybody in the crowd towards anybody in the crowd, whether such requests are accepted or not.
Pricing using several existing cloud services usually incurs a price on the clients, especially when the client is an organisation. Free cloud services do exist, but they also usually come with a set of limitations, such as bandwidth or data volume limitations, or with unwanted, usually obtrusive advertisements. However, paying for cloud services is justified because of the costs of running, maintenance, upgrade, personnel, etc.
Crowdcloud offers the possibility of getting cloud services either for free or for a nominal cost. In social cloud, this possibility also exists, but only for a certain group of people in an individual’s social network, e.g., one’s friends or friends of friends. In crowdcloud, on the other hand, people may have different motivations to provide free or inexpensive cloud services, friendship only being one of them. Other reasons might include a mutual agreement to use each other’s resources, getting social incentives such as a better visibility in an online forum, or simply as an act of altruism and helping towards a noble cause, such as providing one’s resources for global awareness about a certain topic. While it is acknowledged that this may not be a noticeable difference between crowdcloud and other cloud services, the possibility of tapping into an overwhelmingly large and possibly free pool of cloud services is still an advantage of crowdcloud.
Free market model crowdcloud follows a free market model where the crowd provide and request cloud services. In this free market model, the crowd can determine the revenues and the costs, they can bid for services, and they can exchange one service for another. The crowd can cooperate on service provision or compete to receive them, and in the long run, the crowd will learn from past experiences and adapt to new emerging situations. Last but not least, the crowd will self-organise their interactions, service provisions and requests, and their forthcoming challenges. This idea of free market is probably the most prominent feature of crowdcloud.
Flexibility one challenge to traditional clouds is the need for rapid provision of resources with low latency to support new and emerging resource-hungry (real-time) applications. The volatile workload requiring constant auto-scaling and load balancing in the cloud is posing a real engineering challenge to current providers [
69]. Various effort in decentralising computing resources have been proposed in the literature (e.g., [
58,
63,
70,
73]). Crowdcloud presents itself as a potential solution to this as resources can be sourced from nearby incentivised participants and/or organisations rather than relying on resources statically provisioned at some central data centres which may incur long response time. By sourcing the resources nearby, crowdcloud reduces the latency as well as allowing the flexible adaptation of resources based on workload. As such, we see crowdcloud as an enabler to such edge/fog cloud technologies in providing seamless services under uncertainties. Note that this is different from forming a federated cloud or interlinking different clouds with multiple cloud providers enter into agreements [with or without contractual enforcement for example via Service Level Agreements (SLAs)] as we are focusing on sourcing sufficient local resources on demand. We refer readers to [
25] for different forms of such cloud federation.
5.3.2 Challenges in crowdcloud
While the idea of crowdcloud can potentially offer several advantages to the clients of cloud services, it amplifies several already existing challenges in cloud service provisioning that should be addressed and introduces new challenges to this paradigm as well. Without appropriate consideration of these challenges, a successful, useful implementation of crowdcloud cannot be guaranteed. Below, these major challenges are discussed and possible solutions are proposed.
Availability one issue that should be addressed in crowdcloud is availability. In ordinary cloud services and cloudsourcing, a certain percentage of availability is guaranteed for cloud services clients [
1]. Although sometimes organisations fail to hold onto their promises about the level of availability [
64], clients can generally rely on these promises, and they usually get compensated in situations where availability is compromised.
Such availability promises are often absent and cannot be guaranteed in a crowdcloud environment. When service providers in crowdcloud provide their services in an ad-hoc manner with no contractual bindings, they may withdraw from service provision without proper notice at any time. But even with contracts made between cloud service providers and clients in crowdcloud, the nature of crowdcloud still overshadows its availability. While this may not be a big issue in some instances such as CPU power, i.e., the client may connect to another client and use their CPU power, this can cause a huge problem in some other instances such as cloud storage, i.e., if a client becomes unavailable while providing cloud storage, all files on their storage device will be unavailable to their client during that period of time.
To overcome availability issues, a number of solutions can be adopted. One possible solution, when applicable, can be redundancy, i.e., a client may use several similar cloud services in crowdcloud to guarantee their desired level of availability for that certain service, e.g., a client may copy their files on several storage services just to make sure they will never lose the availability of their data. Another possible solution is for service providers and service clients to sign a binding contract, negotiating and detailing the level of service availability. Another possible partial solution is the trust-based solution, i.e., people will less likely stop providing their cloud service to their friends without at least notifying them about it in a reasonable time to let them find alternative cloud solutions. Reputation systems can also be put in practice to make clients aware of those cloud service providers who have gained more reputation based on their service provision availability.
Security another prominent issue that cloud clients may encounter in crowdcloud is the security. Ordinary cloud services have their own security issues [
42], but it can get much aggravated in crowdcloud. When well-established, reputable organisations provide cloud services, their clients generally trust them as they request resources from them. If any security breaches occur, clients are usually assured that certain measures will be taken to both reduce the adverse effects and to ensure that the possibilities of such breaches in the future are minimised.
On the other hand, this is not the case on a crowdcloud platform. Given that resources are provided by ordinary people, clients cannot be guaranteed to benefit from any security measures if and when security breaches occur. Furthermore, trusting cloud service providers or clients is also an issue when they are individuals rather than organisations, especially in the absence of a legally binding contract. For example, providing CPU power as a resource to another individual could raise the possibility of one’s system being hacked, inducing harm to the service provider. Similarly, receiving storage space as a resource from another individual could also raise the possibility of ones’ personal information being misused, inducing harm to the service client.
It should be noted that even big organisations sometimes fail to take good care of their clients’ security, leading to many research into security issues in the cloud [
61]. Furthermore, in a crowdcloud platform, a trust-based system can be formulated between every service provider and service client as a possible solution to security issues. For example, clients should be able to share certain resources only with certain people, e.g., only with their friends or with their friends and their friends of friends, as in the case of social cloud. Furthermore, leaving a certain degree of responsibility of ensuring security on its stakeholders is not a new idea and many cloud service providers are already practising this. For example, it is up to the Google Drive client to decide which files to share and with whom. While the consequences of sharing infrastructure resources with the wrong people is probably more dire, it is still observed as a good practice to leave it for the people to decide on it and enforce it when and if necessary.
Privacy given the nature of crowdcloud, which is providing cloud services by the ordinary crowd to the ordinary crowd, privacy issues constitute an instant threat. In ordinary cloud computing, cloudsourcing and volunteer cloud computing, organisations have a data security policy that ensures data privacy and enforces clients’ data protection. Even with big organisations and cloud service providers, privacy always remains an issue in the cloud [
39] and it makes big news in the media every now and again [
51], but it can get even more exacerbated in the case of crowdcloud.
Cloud service providers in crowdcloud usually comprise of ordinary individuals, whose locations might sometimes be unknown, and whose local privacy regulations may differ significantly from privacy regulations in the countries where cloud service clients reside. Then it is also the issue of malicious service providers, which arises in many contexts where the crowd is given authority or responsibility [
46,
67]. Combined together, these issues can form significant threats to clients’ privacy.
There are a number of measures to take in order to minimise clients’ privacy breaches in crowdcloud. Reputation systems help the clients understand which cloud service providers are well-famed or ill-famed, and request for their services accordingly. Trust-based solutions also help the clients and providers in determining where their data can be stored, who can use the CPU power, etc. User-driven privacy enforcement [
27] is another solution that can help increase privacy in crowdcloud.
Legal issues providing cloud services at the infrastructure level or platform level may pose legal threats, but providing SaaS probably introduces the majority of legal issues in crowdcloud. As for organisations, they usually provide SaaS when they own the rights to the software or to the provision of the SaaS. In this case, the organisation will have all the rights to determine how to distribute the software and to determine pricing mechanisms. Apart from this, organisations usually provide their clients with SLAs which usually clearly define each party’s rights and duties, which can later be referred to when disagreements arise between service providers and service clients [
53].
The ordinary crowd, on the other hand, may own the software they have on their systems through the purchase of that software, but they usually do not have the rights to redistribute the software or provide it as a service to other people. Furthermore, there are usually no contracts or SLAs between service providers and service clients in crowdcloud, making it difficult to settle disagreements and legal disputes if and when legal issues arise.
In order to resolve general legal issues in crowdcloud, it seems necessary that service providers and service clients should be required by the crowdcloud platform to agree with certain rights and responsibilities before committing to any service provision or initiating any service request. However, providing SaaS will be impossible for several software systems under copyright laws with current legislation. Providing other forms of SaaS, such as freeware software, open source software, and software under copyleft laws, may not pose legal threats.
Transparency transparency is an emerging requirement of the people in the age of information technology [
36]. With so many Web-enabled devices and people’s personal information being constantly transmitted over the Web, transparency is becoming increasingly important. It should be noted that people generally understand and accept the fact that their personal information needs to be accessed by Web entities, such as Web merchants and business Websites, in order for them to receive tailored services and products. What these Web entities fail to provide to the people, however, is how (and sometimes why) this information is being handled. For example, a lot of people would like to know why a certain product appears in the advertising panel of their e-mail provider or their search engine when they just recently searched for the same or similar product in a totally e-commerce platform.
In crowdcloud, transparency requirements become more desirable as cloud service providers and clients can be ordinary people about whom little or no information might be available. Furthermore, transparency about the details of cloud service provision or request can play an important role in crowd’s engagement with crowdcloud. For example, someone requesting CPU power may state
why they need to use somebody else’s CPU and
how they intend to use it, or someone offering cloud storage may explain
how they ensure the privacy and security of the stored information on their storage device. Engineering approaches towards transparency [
31,
34,
35] can significantly help in formalising and formulating such requirements, and the power of the crowd engaged in crowdcloud can be harnessed to meet such transparency requirements [
33,
37].
Retention a significant issue in crowd-based systems is that, in the absence of an appropriate type of motivation, crowd members may lose their interest in actively participating in crowdsourced activities. Crowdcloud is no exception in this case and will require an incentive model for the engagement and retention of the crowd in providing cloud services.
The problem of crowd engagement and retention in crowdcloud can be circumvented in several ways. First, crowd members’ active participation can be encouraged through the free market model, where crowd members can fulfil their cloud requirements through a supply and demand model. That is to say, crowd members will need to stay engaged and active on the crowdcloud if they want to maintain their access to cloud services they require.
Second, and similar to other crowd-based systems and platforms [
16,
59], gamification can be a plausible method of motivating and retaining crowd engagement through points, badges, and leaderboards [
68]. For instance, crowd members can be incentivised for each cloud service provision through points, and they can appear on leaderboards based on the most positive feedback they get from their clients. When carefully engineered and implemented, such immersion in gamification can cause crowd members to fully engage in crowdcloud, while it also makes them commit to higher quality cloud service provision for more points, more badges, and higher ranks in leaderboards.