Social network platforms have rapidly changed the way that people communicate and interact. They have enabled the establishment of, and participation in, digital communities as well as the representation, documentation and exploration of social relationships. We believe that as ‘apps’ become more sophisticated, it will become easier for users to share their own services, resources and data via social networks. To substantiate this, we present a social compute cloud where the provisioning of cloud infrastructure occurs through “friend” relationships. In a social compute cloud, resource owners offer virtualized containers on their personal computer(s) or smart device(s) to their social network. However, as users may have complex preference structures concerning with whom they do or do not wish to share their resources, we investigate, via simulation, how resources can be effectively allocated within a social community offering resources on a best effort basis. In the assessment of social resource allocation, we consider welfare, allocation fairness, and algorithmic runtime. The key findings of this work illustrate how social networks can be leveraged in the construction of cloud computing infrastructures and how resources can be allocated in the presence of user sharing preferences.
CLOUD computing has garnered praise for many reasons, most notably due to its ability to reduce overheads and costs for consumers by leveraging economies of scale to provide infrastructure, platforms and software as services. Infrastructure providers such as amazon elastic compute cloud (EC2) rid users of the burdens associated with purchasing and maintaining computer equipment; instead compute resources can be out-sourced to specialists and consumers can obtain access to an “unlimited” supply of resources. Despite its benefits, many businesses and end users are put off by an array of (perceived) uncertainties, as identified in numerous studies (e.g., , ). Two key issues are the notions of trust and accountability between resource consumers and providers . In this context, trust and accountability encapsulate several different aspects such as security, privacy, ethical practices, transparency, protection of rights, and issues concerning compensation. Addressing these concerns is a significant undertaking, and consequentially, many international research programs have emerged, covering issues such as provider certification and service level agreements.
In this paper we argue an alternative approach to establish trust and accountability in cloud platforms: a social cloud ; and advocate a novel preference-based approach to facilitate resource sharing.
A social cloud is “a resource and service sharing framework utilizing relationships established between members of a social network” . It is a dynamic environment through which (new) cloud-like provisioning scenarios can be established based upon the implicit levels of trust that transcend the inter-personal relationships digitally encoded within a social network. Leveraging social network platforms as mediators for the acquisition of a cloud infrastructure can be motivated through their widespread adoption, their size, and the extent to which they are used in modern society. For example, Facebook surpassed 1 billion users in 2012,1 and has illustrated that Milgram’s 6 degrees of freedom in social networks  may in fact be as low as 4 . Users also spend inexorable amounts of time “on” social network platforms—a recent study indicated up to 1 in every 5 minutes of time spent online by all Internet users worldwide . The computational social capital available is also significant: if only 0.5 percent of Facebook users provided CPU time on their personal compute resources the potential computational power available would be comparable to a www. top500.org supercomputer . Examples of such sharing include: the 25 years of cycle stealing with Condor , the 16 years of volunteer computing since the Great Internet Mersenne Prime Search2 and more recently Boinc ; which show users are willing to donate personal compute resources to “good” causes.
Our vision of the social cloud is motivated by the need of individuals or groups to access resources they are not in possession of, but that could be made available by connected peers. In this paper, we present a social compute cloud: a platform for sharing infrastructure resources within a social network. Using our approach, users can download and install a middleware (an extension to Seattle ), leverage their personal social network via a Facebook application, and provide resources to, or consume resources from, their friends through a social clearing house. We anticipate that resources in a social cloud will be shared because they are underutilized, idle, or made available altruistically.
In our earliest work , in which we first introduced the idea of the social cloud, our proof-of-concept was a social storage cloud. That prototype relied on a virtual credit model to regulate exchange and prevent freeloading. However a key aspect of a social cloud is the notion of sharing, not selling, resources. In this paper we have revisited the allocation model and moved away from a purely economic exchange to a model that emphasizes user choice. Specifically, due to the social network basis of a social cloud, users will have explicit preferences with whom their resources are allocated to, and from whom they consume resources. To support user preferences, we implement several algorithms for bidirectional preference-based resource allocation. We compare the runtime of these algorithms finding that for large numbers of participants and frequent allocations it may be impractical to compute allocations in real-time. We also study the effects of stochastic user participation (i.e., changing supply and demand) when instant reallocation may be impossible due to constraints on migration. We therefore introduce heuristics and compare their economic performance based on metrics such as social welfare and allocation fairness.
The rest of the paper is structured as follows: Section 2 presents the concept of a social compute cloud, the challenges with its construction, and its architecture. Section 3, describes the implementation of a social compute cloud entailing the core components and preference matching algorithms. In Section 4, we evaluate our approach (via simulation), placing a focus on allocation runtime and economic performance. We outline related work in Section 5 and conclude the paper in Section 6.
2 ASOCIAL COMPUTE CLOUD
A social compute cloud is designed to enable access to elastic compute capabilities provided through a cloud fabric constructed over resources contributed by socially connected peers. A social cloud is a form of community cloud (as defined in NIST’s definition of cloud computing ), as the resources are owned, provided and consumed by members of a social community. Through this cloud infrastructure consumers are able to execute programs on virtualized resources that expose (secure) access to contributed resources, i.e., CPU time, memory and disk/ storage. In this model, providers host sandboxed lightweight virtual machines (VM) on which consumers can execute applications, potentially in parallel, on their computing resources. While the concept of a social compute cloud can be applied to any type of virtualization environment in this paper we focus on lightweight programming (application level) virtualization as this considerably reduces overhead and the burden on providers. In  we explored the use of a more heavyweight virtualization environment based on Xen, however the time to create and contextualize VMs was shown to be considerable.
There are many challenges in the construction of a social cloud that need to be carefully considered. In this section, we summarize several key challenges placing a focus on: the technical facilitation of the cloud platform, the inclusion as well as interpretation of social (network) structures, the design and implementation of appropriate socio-economic models for the facilitation of exchange as well as the platform infrastructure.