Cloud computing is an emerging trend to deploy and maintain software and is being adopted by the industry by Google, IBM, Microsoft, and Amazon. Several prototype applications and platforms, such as the IBM “Blue Cloud” infrastructur, the Google App Engine, the Amazon Cloud, and the Elastic Computing Platform, have been proposed.
However, when it comes to the question on how to model cloud applications, the question remains unexplored. In this paper, we sketch an application model, and develop theoretical test adequacy criteria for testing applications in a cloud.
With reference to the cloud, there has been debate between programming-in-the-large versus programming-in-the-small. There appears to be a consensus emerging in the software engineering community that software methodologies and techniques to support the former one should be different from those for the latter one.
However, many most of the recent proposals on cloud computing have focused on “in the large”, such as how to scale an application to the internet scale. There is little discussion on the “in-the-small” side, despite the fact that a “small cloud” is more manageable than a huge cloud, and thus having a more uniform strategy to manage cloud applications may be viable.
In this paper, we present a model to support modeling, analysis and testing of computing clouds in-the-small. We first formulate the notion of a bare-bone cloud as a foundation for analyzing cloud computing. We use the real-life weather cloud system as a metaphor to refine the notion of bare-bone clouds to a kind of directed graph, which we called a cloud graph.
In a cloud graph, every node is a computing entity; a computing resource such as a service or an IP right to use a particular service or data (e.g., image or photo) is modeled as an attribute of a node. The availability of an attribute of one node to another node is modeled as a predicate on an edge that connects from the latter node to the former one. Thus, a cloud execution can be modeled as a set of paths in a predicate- enabled subgraph of a cloud graph.
We also propose algorithms for compositional cloud computations and theoretical test adequacy criteria to assure the application quality of such cloud applications. Although the modeling can be applied to both “large” and “small” clouds, our algorithms are particularly viable to clouds-in-the-small, in the sense that a process (in the system sense) is capable to oversee the activities of the cloud, and exercise cloud management.
To read this external content in full, download the complete paper from the author archives on line at the City University of Hong Kong.