Component Recommendation for Cloud Applications Zibin Zheng

Michael R. Lyu

The Chinese University of Hong Kong Hong Kong, China

The Chinese University of Hong Kong Hong Kong, China

[email protected]

[email protected]

ABSTRACT Cloud computing is becoming popular nowadays. Building highly reliable cloud applications is a great challenge since the cloud applications are usually large-scale, complex, and include a lot of distributed components. In this paper, we propose a significant component recommendation framework for the cloud applications to attack this challenge. Our approach employs the component invocation relationship to compute significant values of components. The most significant components can be identified efficiently and effectively by our approach.

1. INTRODUCTION Cloud computing is a style of computing, in which resources (e.g. infrastructure, software, applications, etc) are sharing among the cloud service consumers, cloud partners, and cloud vendors in the cloud value chain. Cloud computing is increasingly popular these recently years. The leading industry companies (e.g., Microsoft, Google, IBM, Amazon, etc.) strongly promote this new computing paradigm. Applications running on such cloud environment are taken as cloud applications. Cloud applications, which usually involve a number of distributed components, are becoming ever larger and more complex. The demand for highly reliable cloud applications is becoming stronger. Before enterprises transfer their critical systems to the cloud environment, one question they ask is: Can clouds become as reliable as the power grid achieving 99.999% uptime? In the current stage, the reliability and availability of cloud applications are still far from perfect. Designing approaches to build highly reliable and robust clouds is a critical, challenging, and urgently-required research problem. Reconfigurability is a main feature of cloud computing. When designing or reconfiguring a cloud application, recommendation algorithms for significant components can help the designers and developers to better cope with the hug amount of component information in a cloud and to discover the most important components efficiently and effec-

tively. By identifying the significant components from the large number of distributed components of a cloud application, the designers can employ various reliability enhancement techniques to make sure that the important components are reliable. The reliability of the whole system can thus be improved within the budget. In this paper, we propose a component recommendation framework for cloud applications by employing the component invocation relationships. In our approach, the components which are invoked frequently by other important components are considered to be more important. This is because their failures will have a great impact to the whole system. In the following of this paper, Section 2 presents the significant component recommendation approach, Section 3 shows related work and discussion, and Section 4 concludes the paper.

2.

RECOMMENDATION FRAMEWORK

The target of our recommendation framework is to measure the importance of components in cloud applications based on the application structures and the component invocation frequencies. As shown in Figure 1, firstly, a component graph is built for a cloud application. Then, a component ranking algorithm is run to measure the importance of the components. Finally, the most significant components of the cloud application are recommended to the application designer. The details of these three phases are introduced in Section 2.1 to Section 2.3, respectively.

2.1

Component Graph Building

A cloud application can be modeled as a weighted directed graph G, where a node ci in the graph represents a component and a directed edge eij from node ci to node cj represents a component invocation relationship (ci invokes cj ). Each node ci in the graph G has a nonnegative significant value SV (ci ), which is between 0 and 1. Each edge eij in the graph also has a nonnegative weight W (eij ), which is also between 0 and 1. For each node ci , the sum of weights of the outgoing edges is equal to 1: ∑ W (eij ) = 1, (1) j∈M (ci )

Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. RSSE ’10, May 2-8 2010, Cape Town, South Africa Copyright 2010 ACM 978-1-60558-974-9/10/05 ...$10.00.

where M (ci ) is a set of nodes that ci invokes. W (eij ) = 0 if there is no edge from ci to cj (ci does not invoke cj ).

2.2

Component Ranking

In a cloud application, some components are invoked more often than others. These components are considered to be more important, since the failure of these components will

Cloud Application

Component Graph Building Legend

Input/output of phases Input/output data

Significant Component Recommendation

Component Ranking

Graph

Significant Components

Significant Values

Figure 1: Recommendation Framework for Significant Components influence a lot of other components and thus have greater impact to the whole system. Intuitively, these components (named as significant components) are the ones that have many invocation links coming in from other frequently invoked components. To measure the significant values of different components in a cloud application, we propose an algorithm as follows: 1. Assign initial numerical scores between 0 and 1 to the components in the graph. 2. Calculate weights of the edges by the following equation: fij W (eij ) = ∑n , (2) j=1 fij where fij is the invocation frequency of component cj by component ci and n is the number of components. In this way, the component which is invoked more frequently contains larger weights. By Eq. (2), an n × n transition probability matrix P can be obtained for a component graph, where each entry pij in the matrix is the value of W (eij ). 3. Employ the following equation to compute the significant value for a component ci : ∑ 1−d SV (ci ) = +d (SV (ck )W (eki )), (3) n k∈N (ci )

where n is the number of components, d is a parameter with value between 0 and 1, and N (ci ) is a set of components that invoke component ci . Consequently, a component ci has larger significant value if it is invoked by a lot of significant components (large SV (ck ) values) frequently (large W (eki ) values). In vector form, we can write Eq (3) as:       SV (c1 ) (1 − d)/n SV (c1 )      .. .. .. t  =  + dP   , (4) . . . SV (cn ) (1 − d)/n SV (cn ) where P t is the transposed matrix of the transition probability matrix P . 4. Solve the above problem by computing the eigenvector with eigenvalue 1 or by repeating the computation until all significant values become stable. With the above approach, the significant value of a component ci is determined by the number of components that invoke ci , the significant weights of these components, and how often ci is invoked by these components.

2.3 Significant Component Recommendation Based on the significant values of the components in the cloud application, the components can be ranked and the top k (1 ≤ k ≤ n) most significant components will be recommended to the designer of the cloud application. In this way, the application designer can identify significant components early at the architecture design time and can employ various techniques to guarantee the reliability and performance of these significant components.

3.

RELATED WORK AND DISCUSSIONS

The recommendation approach of this paper is based on intuition that the significant components of cloud applications can be effectively identified by using a similar approach as Google PageRank [1] (a ranking algorithm for Web page searching) or SPARS-J [2] (software product archieing and retrieving system for Java). Different from the PageRank model and the SPARS-J model where the weights of different outgoing links are identical, invocation frequencies of the invocation links are explored when calculating the weights of edges in our model. Moreover, instead of Web page searching (PageRank) or component searching (SPARS-J), the target of our approach is identifying significant components for the cloud applications. By employing an approach proposed in our work [3], component reliability can be predicted early at design time. In this work, instead of component reliability prediction, we focus on component ranking employing the component invocation structure as well as the invocation frequency.

4.

CONCLUSION AND FUTURE WORK

This paper proposes a significant component recommendation framework for cloud applications. In our approach, whether a component ci is a significant component or not is determined by the number of components that invoke ci , the significant weights of these components, and how often ci is invoked by these components. Currently, the weights of edges are calculated only by the invocation frequencies. In our future work, more factors will be considered for computing the weights. Our ongoing research also includes real-world experiments to verify our approach and the involvement of component quality information for better component recommendation.

Acknowledgement The work described in this paper was fully supported by a grant (Project No. CUHK4154/09E) from the Research Grants Council of Hong Kong, China.

5.

REFERENCES

[1] S. Brin and L. Page. The anatomy of a large-scale hypertextual web search engine. In Proc. 7th Int’l Conf. World Wide Web (WWW’98), 1998. [2] K. Inoue, R. Yokomori, T. Yamamoto, M. Matsushita, and S. Kusumoto. Ranking significance of software components based on use relations. IEEE Trans. Software Engineering, 31:213–225, 2005. [3] Z. Zheng and M. R. Lyu. Collaborative reliability prediction for service-oriented systems. In Proc. 32th Int’l Conf. Software Eng. (ICSE’10), 2010.

Component Recommendation for Cloud Applications

Cloud computing is a style of computing, in which re- sources (e.g. infrastructure, software, applications, etc) are sharing among the cloud service consumers, ...

74KB Sizes 1 Downloads 290 Views

Recommend Documents

Component Recommendation for Cloud Applications - Semantic Scholar
with eigenvalue 1 or by repeating the computation until all significant values become stable. With the above approach, the significant value of a component ci is ...

understanding scientific applications for cloud environments - GitHub
computing resources (e.g., networks, servers, storage, applications, and ser- vices) that can be .... neath, and each layer may include one or more services that share the same or equivalent ...... file/925013/3/EGEE-Grid-Cloud.pdf, 2008. 28.

Component Testing
Jul 8, 2002 - silicon atom. ... you really have to understand the nature of the atom. ..... often that you see a desktop computer burst into flames and burn down ...

Developing Multi-tenant Applications for the Cloud 3rd Edition.pdf ...
Try one of the apps below to open or edit this item. Developing Multi-tenant Applications for the Cloud 3rd Edition.pdf. Developing Multi-tenant Applications for ...

Pilot-Abstractions for Data-Intensive Cloud Applications - GitHub
Pilots provide a powerful abstraction for clouds as well. ... KEY WORDS: Cloud Computing, MapReduce, Grid Computing, Data- ... what if data-volumes are too large to move, or have constraints on the ability to ... due to security or privacy concerns).

Component Testing
Jul 8, 2002 - use a meter to test suspect components and troubleshoot electronic circuits. ..... The valence electron is held loosely to the atom and moves.

Recommendation and Decision Technologies For ...
should be taken into account. ... most critical phases in software projects [30], and poorly im- ... ments management tools fail to provide adequate support.

Mixed factorization for collaborative recommendation with ...
Nov 10, 2015 - the CR-HEF problem, and design a novel and generic mixed factorization based transfer learn- ing framework to fully exploit those two different types of explicit feedbacks. Experimental results on two CR-HEF tasks with real-world data

Selective Optical Broadcast Component for ...
In this respect, we propose a system concept of a passive optical broadcasting ..... file. However such complicated, asymmetrical surface designs can at present only be commercially fabricated at reasonable ... the Solaris 9 operating system.

Exception Handling for Service Component ...
languages, like Java, C++, and Ruby, and frameworks and environments, such as ..... In this application, a server receives requests from a client, processes them ...

Method for producing an optoelectronic semiconductor component
Oct 25, 2000 - cited by examiner. Primary Examiner—Wael Fahmy. Assistant Examiner—Neal BereZny. (74) Attorney, Agent, or Firm—Herbert L. Lerner;.

LETTER OF RECOMMENDATION
Applicant Information. Recommender Information ... in the table below based on you and other teachers' evaluation of the applicant. Best throughout career.

Component symbols.pdf
Cell Supplies electrical energy to a circuit, the longer line ... Loudspeaker Converts electrical energy into sound energy. Page 1 of 1. Component symbols.pdf.

Capacity component -
Dec 1, 2016 - Draft JAO/DAO on biodiversity tagging formulated. • Draft DAO on recommended modes of. PPP for biodiversity conservation. • DAO on establishment of PPP unit in. DENR signed and implemented. • “Establishment of a Carbon. Sequestr

Scalable Component Abstractions - LAMP | EPFL
We identify three programming language abstractions for the construction of .... out to be a convenient way to express required services of a component at the ..... the method call f() does not constitute a well-formed path. Type selection and ...

Scalable Component Abstractions - EPFL
from each other, which gives a good degree of type safety. ..... Master's thesis, Technische Universität ... Department of Computer Science, EPFL, Lausanne,.

LNCS 7575 - Multi-component Models for Object ... - Springer Link
visual clusters from the data that are tight in appearance and configura- tion spaces .... Finally, a non-maximum suppression is applied to generate final detection ...

THREE-COMPONENT 1D VISCOELASTIC FDM FOR PLANE-WAVE ...
May 10, 2010 - It may be an efficient tool for pre- or post-analysis of local structural ... calculated by semi-analytical methods such as the propagator matrix method [e.g. ..... J. M. Carcione, D. Kosloff and R. Kosloff, Geophys. J. Roy. Astron. So

RFC 6472 - Recommendation for Not Using ... - Semantic Scholar
semantics of the originator of a route more clear. This will also simplify the design, implementation, and deployment of ongoing work in the Secure Inter-Domain Routing Working Group. Status of This Memo. This memo documents an Internet Best Current

Toward a Recommendation System for Focusing Testing
sands of files for large systems) and while each file or module may be assigned a ... diagrams and reformulated the class diagram evolution prob- lem as an ECGM .... piled with g++ and run on a Linux Bi Processor Opteron. 64-bit with 16 Gb ...

Mixed similarity learning for recommendation with ...
ical studies on four public datasets show that our P-FMSM can recommend significantly more accurate than several ... ing sites, and check-in records in location-based mobile social networks, etc. For recommendation with implicit feedback, there are a